MySQL常用函数--字符串处理

这里整合了MySQL常用字符串截取函数,不逼逼,上代码

字符串截取 left(str, length) 从左到右
mysql> select left('jinanav666',6);
+----------------------+
| left('jinanav666',6) |
+----------------------+
| jinana               |
+----------------------+
字符串截取 right(str, length) 从右到左
mysql> select right('jinanav666',4);
+-----------------------+
| right('jinanav666',4) |
+-----------------------+
| v666                  |
+-----------------------+
字符串截取:substring(str, pos); substring(str, pos, len)
#从字符串的第 4 个字符位置开始取,直到结束。
mysql> select substring('jinanav666',4);
+---------------------------+
| substring('jinanav666',4) |
+---------------------------+
| anav666                   |
+---------------------------+
#从字符串的第 4 个字符位置开始取,只取 2 个字符。
mysql> select substring('jinanav666',4,2);
+-----------------------------+
| substring('jinanav666',4,2) |
+-----------------------------+
| an                          |
+-----------------------------+
#从字符串的第 4 个字符位置(倒数)开始取,直到结束 
mysql> select substring('jinanav666',-4);
+----------------------------+
| substring('jinanav666',-4) |
+----------------------------+
| v666                       |
+----------------------------+
#从字符串的第 4 个字符位置(倒数)开始取,只取 2 个字符。
mysql> select substring('jinanav666',-4,2);
+------------------------------+
| substring('jinanav666',-4,2) |
+------------------------------+
| v6                           |
+------------------------------+
字符串截取:substring_index(str,delim,count)
#截取第二个 ‘.’ 之前的所有字符。
mysql> select substring_index('www.jinanav.cn','.',2);
+-----------------------------------------+
| substring_index('www.jinanav.cn','.',2) |
+-----------------------------------------+
| www.jinanav                             |
+-----------------------------------------+
#截取第二个 ‘.’ (倒数)之后的所有字符。
mysql> select substring_index('www.jinanav.cn','.',-2);
+------------------------------------------+
| substring_index('www.jinanav.cn','.',-2) |
+------------------------------------------+
| jinanav.cn                               |
+------------------------------------------+
#如果在字符串中找不到 delim 参数指定的值,就返回整个字符串 
#截取一个表某个字段数据的中间值 如该字段数据为 1,2,3 
elect substring_index(substring_index(该字段, ‘,’, 2) , ‘,’, -1) from table;
字符串连接CONCAT(str1,str2,…) 返回来自于参数连结的字符串。如果任何参数是NULL,返回NULL。可以有超过2个的参数。一个数字参数被变换为等价的字符串形式
mysql> select concat('jinan','av','666');
+----------------------------+
| concat('jinan','av','666') |
+----------------------------+
| jinanav666                 |
+----------------------------+
计算字符串长度 length(str)
mysql> select length('sdfdsfwerzxcsadfwersdfsdxwesfsdfwerx') as len;
+-----+
| len |
+-----+
|  36 |
+-----+
locate(substr,str) position(substr in str) LOCATE(substr,str) POSITION(substr IN str)
mysql> select locate('str','XXXstr');
+------------------------+
| locate('str','XXXstr') |
+------------------------+
|                      4 |
+------------------------+
mysql> select position('str' IN 'subsdfsdfdsfstr');
+--------------------------------------+
| position('str' IN 'subsdfsdfdsfstr') |
+--------------------------------------+
|                                   13 |
+--------------------------------------+
lpad(str,len,padstr) 返回字符串str,左面用字符串padstr填补直到str是len个字符长。rpad则从右边算起
mysql> select lpad('jinanav',10,'$');
+------------------------+
| lpad('jinanav',10,'$') |
+------------------------+
| $$$jinanav             |
+------------------------+
#rpad
mysql> select rpad('jinanav',10,'$');
+------------------------+
| rpad('jinanav',10,'$') |
+------------------------+
| jinanav$$$             |
+------------------------+
去除左边,右边,两边空格用 ltrim(str),rtrim(str),trim(str)
space(N)返回由N个空格字符组成的一个字符串。
replace(str,from_str,to_str) 返回字符串str,其字符串from_str的所有出现由字符串to_str代替。
mysql> select replace('jinanStudy','Study','av');
+------------------------------------+
| replace('jinanStudy','Study','av') |
+------------------------------------+
| jinanav                            |
+------------------------------------+
repeat(str,count)返回由重复countTimes次的字符串str组成的一个字符串。如果count <= 0,返回一个空字符串。如果str或count是NULL,返回NULL。
mysql> select repeat('jinanavav',3);
+-----------------------------+
| repeat('jinanavav',3)       |
+-----------------------------+
| jinanavavjinanavavjinanavav |
+-----------------------------+
reverse(str)返回颠倒字符顺序的字符串str。
mysql> select reverse('jinanav666');
+-----------------------+
| reverse('jinanav666') |
+-----------------------+
| 666vananij            |
+-----------------------+
insert(str,pos,len,newstr)返回字符串str,在位置pos起始的子串且len个字符长得子串由字符串newstr代替。
mysql> select insert('jinanavStudy',1,3,'phper');
+------------------------------------+
| insert('jinanavStudy',1,3,'phper') |
+------------------------------------+
| phperanavStudy                     |
+------------------------------------+
elt(N,str1,str2,str3...)如果N= 1,返回str1,如果N= 2,返回str2,等等。如果N小于1或大于参数个数,返回NULL。elt()是field()反运算。相当于php $array['N']
field(str,str1,str2,str3,…) 返回str在str1, str2, str3, …清单的索引。如果str没找到,返回0。field()是elf()反运算。 相当于php array_search()
load_file(file_name) 读入文件并且作为一个字符串返回文件内容。文件必须在服务器上,你必须指定到文件的完整路径名,而且你必须有file权限。文件必须所有内容都是可读的并且小于max_allowed_packet。如果文件不存在或由于上面原因之一不能被读出,函数返回NULL。

你可能感兴趣的:(MySQL常用函数--字符串处理)