5.2 字符串函数
5.2.1 计算字符串字符与计算字符串长度函数
计算字符串字符个数
SELECT CHAR_LENGTH("date"), CHAR_LENGTH("egg")
结果:4, 3
计算字符串长度:
SELECT LENGTH("data"), LENGTH("egg")
结果:4, 3注意:英文字符个数与所占字节相同
5.2.2 合并字符串函数CONCAT(s1,s2,...)和CONCAT_WS(x,s1,s2,...)
CONCAT(s1,s2,...)和CONCAT_WS(x,s1,s2,...)连接字符串
SELECT CONCAT("this ","is ","test"),("this", NULL, "test")
结果:this is test, null
SELECT CONCAT_WS("*","this","is","test"),("*","this", NULL, "test")
结果:this*is*test,this*test注意:CONCAT函数只有拼接,一个为NULL就返回null,CONCAT_WS是拼接函数,对内容使用拼接为内容进行拼接
5.2.3 替换字符串函数INSERT(s1, x, len, s2)
INSERT(s1, x, len, s2)注意:正常用1,从字符串第2位开始,替换4位,变成what,如果初始位置为负数,直接返回源字符串;如果长度超出,那么,从起 始位置截取余下全部,替换成后面的内容
5.2.4 字母大小写转换函数
转小写
转大写
注意:都是可以写入混合大小写内容进行转变的
5.2.5 获取指定长度的字符串函数LEFT(s,n)和RIGHT(s,n)
LEFT(s,n)和RIGHT(s,n)备注:LEFT表示返回字符串从第n位开始,左面的所有字符,RIGHT表示返回最右面的n个字符
5.2.6 填充字符串函数LPAD(s1,len,s2)和RPAD(s1,len,s2)
LPAD(s1,len,s2)和RPAD(s1,len,s2)注意:如果指定长度小于内容长度,那么缩减原有内容,如果指定长度多于内容长度,进行填充,LPAD表示左侧填充,RPAD表示右 侧填充
5.2.7 删除空格函数LTRIM(s)、RTRIM(s)和TRIM(s)
LTRIM(s)、RTRIM(s)和TRIM(s)5.2.8 删除指定字符串的函数TRIM(s1 FROM s)
TRIM(s1 FROM s)注意:只会删除两端,不会删除中间的内容
5.2.9 重复生成字符串内容REPEAT(s,n)
REPEAT(s,n)注意:如果s或者n有一个为NULL,那么直接返回null
5.2.10 空格函数SPACE(n)和替换函数REPLACE(s, s1, s2)
SPACE(n)和替换函数REPLACE(s, s1, s2)空格函数
用于返回n个空格
替换函数
5.2.11 比较字符串大小的函数STRCMP(s1, s2)
STRCMP(s1, s2)如果两个字符串相同,返回0, 如果第一个小于第二个,返回-1,其他返回1
注意:对比是按照字母顺序的大小进行对比的
5.2.12 获取子串函数SUBSTRING(s, n, len)和MID(s, n, len)
SUBSTRING(s, n, len)和MID(s, n, len)s:字符串,n:开始位置,len:截取子串个数
注意:len不填时候截取余下全部;
n为负数时候,表示从后向前数|n|位,然后进行截取len的长度
如果len使用的是一个小于1的值,那么返回空字符串
备注:两种方法用法完全相同
5.2.13 匹配子字符串开始位置
5.2.14 字符串逆序函数REVERSE(s)
REVERSE(s)5.2.15 返回指定位置的字符串的函数
ELT(位置, 字符串1, 字符串2...)
5.2.16 返回指定字符串位置的函数FIRLD(s, s1, s2...)
FIRLD(s, s1, s2...)注意:返回的是s在后面第一次出现的位置,如果s值不存在或者为null,都返回0
5.2.17 返回子串位置函数FIND_IN_SET(s1, s2)
FIND_IN_SET(s1, s2)注意:虽然结果相同,但是与
FIELD格式是不同的如果s2中没有s1或者s2为null的时候,返回0
如果s1包含了一个逗号,则函数失效
5.2.18 选取字符串函数MAKE_SET(x,s1,s2...)
MAKE_SET(x,s1,s2...)注意:是按照x的二进制数去获取
举例:1:0001,4:0100,1|4:0101
从右到左,一三位为1
所以,第一个是a,第二个是a c, 第三个a null,null忽略, 第四个没有,不显示
最后更新于
这有帮助吗?