文章仅供参考,不包含全部函数
文章目录
- MySQL常用的字符串函数(标★号为很常用)
- 1.★CHAR_LENGTH(str):返回字符串 str 的字符数
- 2.★CONCAT(s1,s2,...,sn):字符串 s1,s2 等多个字符串合并为一个字符串
- 3.CONCAT_WS(x, s1,s2...sn):合并多个字符串,并添加分隔符
- 4.FIELD(s,s1,s2...):返回第一个字符串 s 在字符串列表(s1,s2...)中的位置
- 5.FIND_IN_SET(s1,s2):返回在字符串s2中与s1匹配的字符串的位置
- 6.★FORMAT(x,n):格式化数字 "#,###.##" 形式
- 7.INSERT(s1,x,len,s2):字符串 s2 替换 s1 的 x 位置开始长度为 len 的字符串
- 8.LOCATE(s1,s):从字符串 s 中获取 s1 的开始位置
- 9.★LCASE(s)/LOWER(s):将字符串 s 的所有字母变成小写字母
- 10.★UCASE(s)/UPPER(s):将字符串转换为大写
- 11.★LEFT(s,n):返回字符串 s 的前 n 个字符
- 12.★RIGHT(s,n):返回字符串 s 的后 n 个字符
- 13.★LTRIM(s):去掉字符串 s 开始处的空格
- 14.★RTRIM(s):去掉字符串 s 结尾处的空格
- 15.★TRIM(s):去掉字符串 s 开始和结尾处的空格
- 16.★REPLACE(s,s1,s2):将字符串 s2 替代字符串 s 中的字符串 s1
- 17.INSERT(s1,x,len,s2):字符串 s2 替换 s1 的 x 位置开始长度为 len 的字符串
- 18.★SUBSTRING(s,n,length )/SUBSTR(s, start, length):从字符串 s 的 start 位置截取长度为 length 的子字符串
- 19.REVERSE(s):将字符串s的顺序反过来
MySQL常用的字符串函数(标★号为很常用)
1.★CHAR_LENGTH(str):返回字符串 str 的字符数
返回字符串 ‘你好’ 的字符数
例:SELECT CHAR_LENGTH('你好') AS LengthOfString; --2
2.★CONCAT(s1,s2,…,sn):字符串 s1,s2 等多个字符串合并为一个字符串
字符串 s1,s2 等多个字符串合并为一个字符串,常见的应用场景,模糊查询拼接通配符%
例:SELECT * FROM USERWHERE username LIKE CONCAT('%',#{username},'%')
3.CONCAT_WS(x, s1,s2…sn):合并多个字符串,并添加分隔符
同 CONCAT(s1,s2,…) 函数,但是每个字符串之间要加上 x,x 可以是分隔符
例:SELECT CONCAT_WS("-", "1", "2", "3", "4") AS ConcatenatedString; --查出来就是'1-2-3-4'
4.FIELD(s,s1,s2…):返回第一个字符串 s 在字符串列表(s1,s2…)中的位置
返回第一个字符串 s 在字符串列表(s1,s2…)中的位置
例:SELECT FIELD("c", "a", "b", "c","d", "e");
5.FIND_IN_SET(s1,s2):返回在字符串s2中与s1匹配的字符串的位置
返回在字符串s2中与s1匹配的字符串的位置
例:SELECT FIND_IN_SET("c", "a,b,c,d,e");
6.★FORMAT(x,n):格式化数字 “#,###.##” 形式
函数可以将数字 x 进行格式化 “#,###.##”, 将 x 保留到小数点后 n 位,最后一位四舍五入。
例:SELECT FORMAT(250500.5634, 2); -- 输出 250,500.56
7.INSERT(s1,x,len,s2):字符串 s2 替换 s1 的 x 位置开始长度为 len 的字符串
从字符串第一个位置开始的 6 个字符替换为 hello:
例:SELECT INSERT("google.com", 1, 6, "hello"); -- 输出:hello.com
8.LOCATE(s1,s):从字符串 s 中获取 s1 的开始位置
获取 b 在字符串 abc 中的位置:
例:SELECT LOCATE('st','myteststring'); -- 5
返回字符串 abc 中 b 的位置:
例:SELECT LOCATE('b', 'abc') -- 2
9.★LCASE(s)/LOWER(s):将字符串 s 的所有字母变成小写字母
将字符串 s 的所有字母变成小写字母
例:SELECT LCASE('HELLO') -- hello
例:SELECT LOWER('HELLO') -- hello
10.★UCASE(s)/UPPER(s):将字符串转换为大写
将字符串转换为大写
例:SELECT UCASE("hello"); -- HELLO
例:SELECT UPPER("hello"); -- HELLO
11.★LEFT(s,n):返回字符串 s 的前 n 个字符
返回字符串 runoob 中的前两个字符:
例:SELECT LEFT('runoob',2) -- ru
12.★RIGHT(s,n):返回字符串 s 的后 n 个字符
返回字符串 runoob 的后两个字符:
例:SELECT RIGHT('runoob',2) -- ob
13.★LTRIM(s):去掉字符串 s 开始处的空格
去掉字符串 HELLO开始处的空格:
例:SELECT LTRIM(" HELLO") AS LeftTrimmedString; -- HELLO
14.★RTRIM(s):去掉字符串 s 结尾处的空格
去掉字符串 HELLO的末尾空格:
例:SELECT RTRIM("HELLO") AS RightTrimmedString; --HELLO
15.★TRIM(s):去掉字符串 s 开始和结尾处的空格
去掉字符串 RUNOOB 的首尾空格:
例:SELECT TRIM(' HELLO ') AS TrimmedString; -- HELLO
16.★REPLACE(s,s1,s2):将字符串 s2 替代字符串 s 中的字符串 s1
将字符串 abc 中的字符 a 替换为字符 x:
例:SELECT REPLACE('abc','a','x') --xbc
去掉字符串H E L L O中间的空格:
例:SELECT REPLACE('H E L L O',' ',''); -- HELLO
17.INSERT(s1,x,len,s2):字符串 s2 替换 s1 的 x 位置开始长度为 len 的字符串
从字符串第一个位置开始的 6 个字符替换为 hello:
例:SELECT INSERT("google.com", 1, 6,"hello"); -- 输出:hello.com
18.★SUBSTRING(s,n,length )/SUBSTR(s, start, length):从字符串 s 的 start 位置截取长度为 length 的子字符串
从字符串 RUNOOB 中的第 2 个位置截取 3个 字符:
例:SELECT SUBSTRING("RUNOOB", 2, 3) AS ExtractString; -- UNO
例:SELECT SUBSTR("RUNOOB", 2, 3) AS ExtractString; -- UNO
19.REVERSE(s):将字符串s的顺序反过来
将字符串 abc 的顺序反过来:
例:SELECT REVERSE('abc') -- cba