MySQL # 对查询出来的结果进行(1)截取前几位,后几位。(2)替换字段。(3)按字段长度排序等操作。

1. 字段截取前几位、后几位

1.1  LEFT(str, len);

SELECT LEFT('sqlTest.com', 3);

-- 结果: sql

1.2  RIGHT(str, len);

SELECT RIGHT('sqlTest.com', 3);

-- 结果:com

注意: hibernate 框架不支持 left(), right() 函数

1.3  substring(str, pos);    substring(str, pos, len);

-- 从第 4 个字符(包含第4个)开始,直到结束
SELECT SUBSTRING('sqlTest.com', 4);
-- 结果:  Test.com


-- 从倒数第 4 个开始,直到结束
SELECT SUBSTRING('sqlTest.com', -4);  
-- 结果:  .com 


-- 从第 4 个字符开始,截取长度为 2 的数据
SELECT SUBSTRING('sqlTest.com', 4, 2);  
-- 结果:  Te

注意:pos 可以为负值,len的值不许为负

1.4  substring_index(str, delim, count)  可以引申为 以 delim 分割字符串

-- 截取第 2 个 '.' 之前的所有字符
SELECT SUBSTRING_INDEX('www.sqlTest.com.cn', '.', 2);
-- 结果:  www.sqlTest


-- 截取倒数第 2 个 '.' 之后的所有字符
SELECT SUBSTRING_INDEX('www.sqlTest.com.cn', '.', -2);
-- 结果:  com.cn


-- 如果找不到 delim 指定的字符,就返回整个字符串

-- 可以嵌套使用
SUBSTRING_INDEX(SUBSTRING_INDEX(字段, ',', 2); , ',', -1)

2. 替换字段

2.1 replace into

向表中插入数据,如果主键不存在直接插入,如果存在,则不会插入

REPLACE INTO 
    student (id, name)
VALUES
    ('1', 'aa'), ('2', 'bb')

2.2 replace(object, source, target)

把 object 中出现 source 的全部替换为 target

SELECT REPLACE ('www.163.com', 'w', 'a');

-- 结果: aaa.163.com

3. 按照字段长度排序

SELECT
    *
FROM
    student
ORDER BY
    LENGTH(name)

猜你喜欢

转载自blog.csdn.net/qq_38134242/article/details/113696344
今日推荐