1.空格函数space和替换函数replace函数
space函数返回由空格组成的字符串。
replace函数使用方法是replace(s,s1,s2),使用字符串s2替换字符串s中所有的s1。
这里看下例子:
root@localhost:3306 [(none)]>select concat('(',space(6),')');
+--------------------------+
| concat('(',space(6),')') |
+--------------------------+
| ( ) |
+--------------------------+
1 row in set (0.00 sec)
root@localhost:3306 [(none)]>select replace('xxx.mysql.com','x','w');
+----------------------------------+
| replace('xxx.mysql.com','x','w') |
+----------------------------------+
| www.mysql.com |
+----------------------------------+
1 row in set (0.04 sec)
2.比较字符串函数strcmp
strcmp函数的使用方法strcmp(s1,s2)
如果s1和s2相等则返回0,如果s1小于s2,则返回-1,其他情况返回1。
root@localhost:3306 [(none)]>select strcmp('txt','txt2'),strcmp('txt2','txt'),st
rcmp('txt','txt');
+----------------------+----------------------+---------------------+
| strcmp('txt','txt2') | strcmp('txt2','txt') | strcmp('txt','txt') |
+----------------------+----------------------+---------------------+
| -1 | 1 | 0 |
+----------------------+----------------------+---------------------+
1 row in set (0.06 sec)
3.获取子串的函数substring(s,n,len)
substring(s,n,len)的用法是从字符串s中第n个字符开始,截取len个字符长度作为子串,如下:
root@localhost:3306 [(none)]>select substring('helloworld',5,3),substring('hello
world',5),substring('helloworld',-3),substring('helloworld',-5,4)\G
*************************** 1. row ***************************
substring('helloworld',5,3): owo
substring('helloworld',5): oworld
substring('helloworld',-3): rld
substring('helloworld',-5,4): worl
1 row in set (0.05 sec)
其中,第二种使用方法省略了len值,这个值如果省略,则返回的是从第n个字符开始后面所有的字符串,第三种方法使用了n=-3的方法,说明是从字符串末尾开始数的,直到字符串的结尾,第四种方法则是从末尾倒数第5个字符开始,截取4个字符作为子串。
4匹配子串开始位置的函数
locate、position、instr三个函数的作用相同,都是返回子串在字符串中的位置。来看例子:
root@localhost:3306 [(none)]>select locate('ball','football'),position('ball' in
'football'),instr('football','ball')\G
*************************** 1. row ***************************
locate('ball','football'): 5
position('ball' in 'football'): 5
instr('football','ball'): 5
1 row in set (0.00 sec)
需要注意的是instr函数需要把子串的位置放在后面,其他两个函数子串的位置是放在前面的。
5.字符串逆序的函数
reverse(str),这个比较好理解,这里给出例子:
root@localhost:3306 [(none)]>select reverse('helloworld');
+-----------------------+
| reverse('helloworld') |
+-----------------------+
| dlrowolleh |
+-----------------------+
1 row in set (0.00 sec)
6.返回指定位置字符串的函数ELT
ELT(n,str0,str1,str2),返回后面那些字符串的第n个,如果越界,则返回null
root@localhost:3306 [(none)]>select elt(3,'1st','2nd','3rd'),elt(3,'1st','2nd');
+--------------------------+--------------------+
| elt(3,'1st','2nd','3rd') | elt(3,'1st','2nd') |
+--------------------------+--------------------+
| 3rd | NULL |
+--------------------------+--------------------+
1 row in set (0.00 sec)
7.返回指定字符串位置的函数field函数
field函数使用方法如下:
field(dst,str1,str2,str3,str4)返回的是后面的字符串中第一个等于dst的字符串的位置,如果不存在,则返回0,示例如下:
root@localhost:3306 [(none)]>select field('hello','I','am','hello'),field('hello
','I','am','a','student');
+---------------------------------+---------------------------------------+
| field('hello','I','am','hello') | field('hello','I','am','a','student') |
+---------------------------------+---------------------------------------+
| 3 | 0 |
+---------------------------------+---------------------------------------+
1 row in set (0.00 sec)
这个函数还有一个变形之后的函数,叫做find_in_set,它代表函数在一个set集合中的位置,使用方法和field一样,举个例子:
root@localhost:3306 [test]>select find_in_set('hello','I,am,hello'),field('hello
','I','am','hello');
+-----------------------------------+---------------------------------+
| find_in_set('hello','I,am,hello') | field('hello','I','am','hello') |
+-----------------------------------+---------------------------------+
| 3 | 3 |
+-----------------------------------+---------------------------------+
1 row in set (0.00 sec)
8.返回子串位置的函数trim(s1 from s2)
看看实例:
root@localhost:3306 [(none)]>select trim('world' from 'helloworld' );
+----------------------------------+
| trim('world' from 'helloworld' ) |
+----------------------------------+
| hello |
+----------------------------------+
1 row in set (0.00 sec)
关于字符串的函数大概就这么多了,后续如果还有遗漏,将会进行补充。