likes
comments
collection
share

数据库系列之字符串运算

作者站长头像
站长
· 阅读数 40

常见的字符串运算如下:

函数说明
replace(str, a,b)将字符串str中的a替换成b
concat(str1, str2, ... , strn)将str1, str2, ... , strn用合并为一个完整的字符串
concat_ws(s, str1, str2, ... , strn)将str1, str2, ... , strn用连接符s合并为一个完整的字符串
left(str, n)获取字符串str最左边的n个字符
right(str, n)获取字符串str最右边的n个字符
substring(str, m, n)获取字符串str从m位置开始的长度为n的字符
ltrim(str)去除字符串str左边的空格
rtrim(str)去除字符串str右边的空格
trim(str)去除字符串str开头和结尾的空格
char_length(str)返回字符串str的字符长度
length(str)返回字符串str的字节长度
repeat(str, n)将字符串str重复n遍

1 字符串替换

SELECT
uid,
REPLACE(uid,"E", "e") as replace_id
FROM
chapter7

result:

数据库系列之字符串运算

2 字符串合并

2.1 默认连接符进行合并

SELECT
uid,
name,
CONCAT(uid, name) as id_name
FROM
chapter7

result:

数据库系列之字符串运算

2.2 自定义连接符进行合并

SELECT
uid,
name,
CONCAT_WS("-",uid, name) as id_name
FROM
chapter7

result:

数据库系列之字符串运算

3 字符串截取

3.1 截取左边部分

SELECT LEFT("2019-10-01 12:20:23",10)

result:

数据库系列之字符串运算

3.2 截取右边部分

SELECT RIGHT("2019-10-01 12:20:23",8)

result:

数据库系列之字符串运算

3.3 截取中间部分

SELECT SUBSTRING("2019-10-01 12:20:23",6, 2)

result:

数据库系列之字符串运算

4 字符串匹配

4.1 匹配任意长度字符

SELECT

 * FROM
   chapter7 
   WHERE
   `name` LIKE "张%"

result:

数据库系列之字符串运算

这里是匹配name这一列以张作为开头的记录

SELECT
    * 
FROM
    chapter7 
WHERE
    `name` LIKE "%李%"

result:

数据库系列之字符串运算

这里是匹配name这一列包含张的记录(张可以不作为开头)

4.2 匹配单个字符

SELECT
    * 
FROM
    chapter7 
WHERE
    `name` LIKE "李_"

result:

数据库系列之字符串运算

5 字符串计数

5.1 获取字符串的字符数

SELECT CHAR_LENGTH("sql")

result:

数据库系列之字符串运算

SELECT CHAR_LENGTH("删库跑路")

result:

数据库系列之字符串运算

5.2 获取字符串的字节数

SELECT LENGTH("sql")

result:

数据库系列之字符串运算

SELECT LENGTH("删库跑路")

result:

数据库系列之字符串运算

这里可以发现,字符串为英文时字节长度和字符长度是一样的,包含中文时就会因为编码的问题二者产生差异

6 去除字符串空格

SELECT
LENGTH(" abcdef ") as str_length,
LENGTH(LTRIM(" abcdef ")) as lstr_length,
LENGTH(RTRIM(" abcdef ")) as rstr_length,
LENGTH(TRIM(" abcdef ")) as tstr_length

数据库系列之字符串运算

7 字符串重复

SELECT REPEAT("sql", 3)

result:

数据库系列之字符串运算

转载自:https://juejin.cn/post/7022084180414562317
评论
请登录