字符串函数
CHAR_LENGTH(s)
返回字符串 s 的字符数
返回字符串 RUNOOB 的字符数
SELECT CHAR_LENGTH("RUNOOB") AS '字符串长度';
SELECT emp_name as '姓名',CHAR_LENGTH(emp_name) as '名字长度' FROM emp;
character_length和char_length完全相同
CONCAT(s1,s2...sn) 合并字符
字符串 s1,s2 等多个字符串合并为一个字符串
SELECT CONCAT("123","456")
CONCAT_WS(x, s1,s2...sn) 指定分隔符合并
同 CONCAT(s1,s2,...) 函数,但是每个字符串之间要加上 x,x 可以是分隔符
SQL-Tutorial-is-fun!
field(s,s1,s2...)
返回第一个字符串 s 在字符串列表(s1,s2...)中的位置
c 在这个字符串列表中是第三个 注意是第一个位置哟
LTRIM(s) 去掉字符串 s 开始处的空格
有时候,针对一些不规则的数据集,我们为了节省时间可以不用其他的工具进行预处理,直接使用ltrim()函数去除前端空格,注意是前端空格哟
RTRIM(s) 去掉字符串 s 结束处的空格
去掉字符串 s 结尾处的空格,这里和上面的记住比较的对称,L——left(左);R——right(右)
那么有时候,我们再想,要是两边都有空字符的话,我们这样频繁的嵌套岂不是很麻烦,有没有一个函数直接解决两端的空格呢?答案是有!
TRIM(s) 去掉两端空格
去掉字符串 s 开始和结尾处的空格
MID(s,n,len) 截取字符串
从字符串 s 的 n 位置截取长度为 len 的子字符串,同 SUBSTRING(s,n,len)
注意,这里的索引开始是1,也就是第一个是1,后面代表着取到的字符串长度 ,下面的函数和它的功能也是一样的。
POSITION(s1 IN s) 从字符串截取s1的开始位置
从字符串 s 中获取 s1 的开始位置
注意这里和前面的field函数是不一样的,前面是在字符串列表里面返回第一个列表元素的位置 ,它由多个字符串,而这个只有一个;
我们举一个详细的例子:通过field函数,第一个参数使用人事部才能匹配到它的位置,如果使用人事那么就无法匹配到,这也是它的一个局限性
如果使用position in 字段就可以匹配到,原因和是什么呢,这是因为第一个函数把多个字符串和后面的字符串进行了全面的匹配,是全局匹配
REPLACE(s,s1,s2) 替代函数
将字符串 s2 替代字符串 s 中的字符串 s1,只是改变了显示,并没有概念原始的数据集
REVERSE(s) 字符串翻转
将字符串s的顺序反过来
这里的应用场景,可以根据你的业务,涉及到一些偏僻的语法,可能就是我们要考的或者现实中创新的部分
RIGHT(s,n) 返回字符串 s 的后 n 个字符
STRCMP(s1,s2) 字符串比较是否相等
比较字符串 s1 和 s2,如果 s1 与 s2 相等返回 0 ,如果 s1>s2 返回 1,如果 s1<s2 返回 -1,比较的是长度