CONCAT(str1,str2,…)
concat函数将一个或多个字符串拼接成一个字符串。如果其中一个是null则整个结果为null。数字型的字段参数会自动转换成字符串型。
> SELECT CONCAT('My', 'S', 'QL');
->MySQL
> SELECT CONCAT('My', NULL, 'QL');
->NULL
> SELECT CONCAT(14.3);
->14.3
> select char_length('你好');
->2
> select length('你好');
->6
获取字符串长度使用char_length()函数,length()函数获取字节长度,如果是汉字,字节长度和数据库字符集有关系。
upper()转大写,lower()转小写
mysql> select upper('hello');
> HELLO
mysql> select lower('HH');
-> hh
REPLACE(str,from_str,to_str) 。str是原串,from_str被替换,to_str要替换成
> SELECT REPLACE('www.mysql.com', 'www', 'w1');
->w1.mysql.com
REVERSE(str)
> select reverse('abc');
->cba
substr()、substring()两个函数作用相同
从某个位置开始截取:SUBSTRING(str,pos)
从某个位置开始截取指定长度:SUBSTRING(str,pos,len)
pos从1开始,包含其实位置。
mysql> select substring('mysql',2);
+----------------------+
| substring('mysql',2) |
+----------------------+
| ysql |
+----------------------+
mysql> select substring('mysql',3,3);
+------------------------+
| substring('mysql',3,3) |
+------------------------+
| sql |
INSTR(str,substr),LOCATE(substr,str),POSITION(substr IN str)。str是被查找字符串,substr是查找字符串。
返回位置从1开始,如果找不到返回0。
INSTR()和locate()方法意义相同,只不过两个参数顺序是相反的。另外locate方法还可以指定从某个位置开始查找LOCATE(substr,str,pos)
mysql> select instr('mysql','sql');
+----------------------+
| instr('mysql','sql') |
+----------------------+
| 3 |
+----------------------+
mysql> select instr('mysql','xsql');
+-----------------------+
| instr('mysql','xsql') |
+-----------------------+
| 0 |
+-----------------------+
mysql> SELECT LOCATE('bar', 'foobarbar', 5);
+-------------------------------+
| LOCATE('bar', 'foobarbar', 5) |
+-------------------------------+
| 7 |
+-------------------------------+
LPAD(str,len,padstr),RPAD(str,len,padstr)
lpad是左侧补齐,rpad是右侧补齐。len是总长度,如果str不够就使用padstr进行补齐直到长度达到len。如果str的长度大于len则将str截取len长度返回。
如果str或padstr为null,则整个结果为null。
space(n) 返回一个给定长度的空串。
mysql> select lpad('hh',4,'*');
+------------------+
| lpad('hh',4,'*') |
+------------------+
| **hh |
+------------------+
mysql> select lpad(null,4,'*');
+------------------+
| lpad(null,4,'*') |
+------------------+
| NULL |
+------------------+
mysql> select lpad('hello',4,'*');
+---------------------+
| lpad('hello',4,'*') |
+---------------------+
| hell |
+---------------------+
trim(),ltrim(),rtrim()
trim取出首尾空格,ltrim()去除左侧空格,rtrim去除右侧空格
mysql> select trim(' haha ');
+----------------+
| haha |
+----------------+
mysql> select ltrim(' haha ');
+-----------------+
| haha |
+-----------------+
mysql> select rtrim(' haha ');
+-----------------+
| haha |
+-----------------+
转ascii码:ascii()
ascii码转字符:char(n)
转二进制字符:bin()
十进制数转八进制:oct()
hex十六进制转换:hex(n),hex(str)。入参如果是数字会返回数字(十进制)对应的16进制值,入参如果是字符串返回字符串对应的十进制值
base64转码:to_base64(),from_base64()
mysql> select ascii('A');
+------------+
| 65 |
+------------+
mysql> select char(65);
+----------+
| A |
+----------+
mysql> select bin(8);
+--------+
| 1000 |
+--------+
mysql> select oct(9);
+--------+
| 11 |
+--------+
mysql> select hex(20);
+---------+
| 14 |
+---------+
mysql> select hex('hi');
+-----------+
| 6869 |
+-----------+
mysql> select to_base64('hh');
+-----------------+
| aGg= |
+-----------------+
mysql> select from_base64('aGg=');
+---------------------+
| hh |
+---------------------+
QUOTE() 转义字符原样输出
mysql> select quote('hello,it\'s me');
+-------------------------+
| 'hello,it\'s me' |
+-------------------------+
repeat(str,count) str输出count次
mysql> select repeat('ha',3);
+----------------+
| hahaha |
+----------------+
STRCMP(expr1,expr2)比较两个字符串是否一样。如果相同返回0,如果第一个小于第二个返回-1,否则返回1.
mysql> select strcmp('haha','haha');
+-----------------------+
| 0 |
+-----------------------+
mysql> select strcmp('haha','hello');
+------------------------+
| -1 |
+------------------------+
mysql> select strcmp('haha','hi');
+---------------------+
| -1 |
+---------------------+