1、 统计字符串字符数函数 CHAR_LENGTH(str)
CHAR_LENGTH(str) 返回值为字符串 str 所包含的字符数,一个多字节字符算作一个单字符。
mysql> SELECT CHAR_LENGTH('hello'), CHAR_LENGTH('哈喽MySQL');
+----------------------+----------------------------+
| CHAR_LENGTH('hello') | CHAR_LENGTH('哈喽MySQL') |
+----------------------+----------------------------+
| 5 | 7 |
+----------------------+----------------------------+
1 row in set (0.00 sec)
2、 统计字符串字节长度 LENGTH(str)
LENGTH(str) 返回值为字符串的字节长度,使用 utf8编码字符集时,一个汉字是3个字节,一个数字或字母算一个字节。
mysql> SELECT LENGTH('hello'), LENGTH('哈喽');
+-----------------+------------------+
| LENGTH('hello') | LENGTH('哈喽') |
+-----------------+------------------+
| 5 | 6 |
+-----------------+------------------+
1 row in set (0.00 sec)
3、 合并字符串函数 CONCAT(s1,s2,...)
CONCAT(s1,s2,...) 返回结果为连接参数产生的字符串。参数中如果有NULL,怎返回的结果为NULL。
mysql> SELECT CONCAT(NULL, 'hello'), CONCAT('hello', ' world');
+-----------------------+---------------------------+
| CONCAT(NULL, 'hello') | CONCAT('hello', ' world') |
+-----------------------+---------------------------+
| NULL | hello world |
+-----------------------+---------------------------+
4 、合并字符串函数 CONCAT_WS(x,s1,s2,...)
CONCAT_WS(x,s1,s2,...) 是 CONCAT()的特殊形式。第一个参数 x 是其他参数的分隔符,分隔符的位置放在要连接的两个字符串之间。
分隔符可以是一个字符串,也可以是其他参数。如果分隔符为NULL,则结果为NULL。函数会忽略任何分隔符参数后的NULL值。
mysql> SELECT CONCAT_WS('-', 'one', 'two', 'three'), CONCAT_WS(NULL, 'one', 'two'), CONCAT_WS('-', NULL, 'one', 'two');
+---------------------------------------+-------------------------------+------------------------------------+
| CONCAT_WS('-', 'one', 'two', 'three') | CONCAT_WS(NULL, 'one', 'two') | CONCAT_WS('-', NULL, 'one', 'two') |
+---------------------------------------+-------------------------------+------------------------------------+
| one-two-three | NULL | one-two |
+---------------------------------------+-------------------------------+------------------------------------+
1 row in set (0.00 sec)
5、将字母转换成小写函数 LOWER(str)或LCASE(str)
mysql> SELECT LOWER('ABab'), LCASE('ABNde');
+---------------+----------------+
| LOWER('ABab') | LCASE('ABNde') |
+---------------+----------------+
| abab | abnde |
+---------------+----------------+
6、将字母转换成大写函数 UPPER(str)或 UCASE(str)
mysql> SELECT UPPER('abcde'), UCASE('abcDE');
+----------------+----------------+
| UPPER('abcde') | UCASE('abcDE') |
+----------------+----------------+
| ABCDE | ABCDE |
+----------------+----------------+
7、获取指定长度的字符串函数 LEFT(s,n)、RIGHT(s,n)
LEFT(s,n) 返回字符串 s 开始的最左边 n 个字符。
RIGHT(s,n) 返回字符串 s 开始的最右边边 n 个字符。
mysql> SELECT RIGHT('mysql', 3);
+-------------------+
| RIGHT('mysql', 3) |
+-------------------+
| sql |
+-------------------+
1 row in set (0.00 sec)
mysql> SELECT LEFT('mysql', 3);
+------------------+
| LEFT('mysql', 3) |
+------------------+
| mys |
+------------------+
8、填充字符串函数 LPAD(s1,len,s2)和RPAD(s1,len,s2)
LPAD(s1,len,s2) 返回字符串s1,其左边由字符串 s2 填充到 len 字符串长度。如果 s1 的长度大于 len,则返回值被缩短至 len 字符
mysql> SELECT LPAD('hello', 4, '*'), LPAD('hello', 10, '*');
+-----------------------+------------------------+
| LPAD('hello', 4, '*') | LPAD('hello', 10, '*') |
+-----------------------+------------------------+
| hell | *****hello |
+-----------------------+------------------------+
RPAD(s1,len,s2) 返回字符串s1,其右边由字符串 s2 填充到 len 字符串长度。如果 s1 的长度大于 len,则返回值被缩短至 len 字符
mysql> SELECT RPAD('hello', 4, '*'), RPAD('hello', 10, '*');
+-----------------------+------------------------+
| RPAD('hello', 4, '*') | RPAD('hello', 10, '*') |
+-----------------------+------------------------+
| hell | hello***** |
+-----------------------+------------------------+
9 、删除空格函数 LTRM(s)、RTRIM(s)、TRIM(s)
LTRM(s) 返回字符串s,字符串左边空格被删除
RTRM(s) 返回字符串s,字符串右边空格被删除
TRIM(s) 删除字符串 s 两边的空格
mysql> SELECT ' hello ', LTRIM(' hello '), RTRIM(' hello '), TRIM(' hello ');
+-----------+--------------------+--------------------+-------------------+
| hello | LTRIM(' hello ') | RTRIM(' hello ') | TRIM(' hello ') |
+-----------+--------------------+--------------------+-------------------+
| hello | hello | hello | hello |
+-----------+--------------------+--------------------+-------------------+
10、删除指定字符串函数 TRIM(s1 from s)
TRIM(s1 from s) 删除字符串 s 两边所有子字符串 s1。s1可选,在未指定的情况下,删除字符串两边的空格
mysql> SELECT TRIM('ab' FROM 'ababahelloabab');
+----------------------------------+
| TRIM('ab' FROM 'ababahelloabab') |
+----------------------------------+
| ahello |
+----------------------------------+
11、重复生成字符串函数 REPEAT(s,n)
REPEAT(s,n) 返回一个由重复的字符串 s 组成的字符串,字符串 s 的数量等于 n。如果 n<=0,则返回一个空字符串。如果 s 或 n 为NULL,返回NULL。
mysql> SELECT REPEAT('Abc', 3), REPEAT('Abc', 0), REPEAT('Abc', NULL);
+------------------+------------------+---------------------+
| REPEAT('Abc', 3) | REPEAT('Abc', 0) | REPEAT('Abc', NULL) |
+------------------+------------------+---------------------+
| AbcAbcAbc | | NULL |
+------------------+------------------+---------------------+
12、返回空格函数 SPACE(n)
SPACE(n) 返回一个由 n 个空格组成的字符串。
mysql> SELECT CONCAT('a', SPACE(5), 'b');
+----------------------------+
| CONCAT('a', SPACE(5), 'b') |
+----------------------------+
| a b |
+----------------------------+