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)