mysql 字符串处理函数

字符串连接

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 |
+---------------------+

你可能感兴趣的:(mysql学习记录,mysql,数据库)