0x01 left 函数

说明: 从左开始截取字符串

用法: left(str, length),即: left(被截取字符串, 截取长度)

0x01.1 left 例子:

  1. mysql> SELECT LEFT('hello world',8);
  2. +-----------------------+
  3. | LEFT('hello world',8) |
  4. +-----------------------+
  5. | hello wo |
  6. +-----------------------+
  7. 1 row in set (0.00 sec)

0x02 right 函数

从右开始截取字符串

用法: right(str, length),即: right(被截取字符串, 截取长度)

0x02.1 right 例子:

  1. mysql> SELECT RIGHT('hello world',8);
  2. +------------------------+
  3. | RIGHT('hello world',8) |
  4. +------------------------+
  5. | lo world |
  6. +------------------------+
  7. 1 row in set (0.00 sec)

0x03 substring 函数

截取特定长度的字符串

用法:

  • substring(str, pos),即: substring(被截取字符串, 从第几位开始截取)
  • substring(str, pos, length)即: substring(被截取字符串,从第几位开始截取,截取长度)

0x03.1 substring 例子一

从字符串的第9个字符开始读取直至结束

  1. mysql> SELECT SUBSTRING('hello world', 9);
  2. +-----------------------------+
  3. | SUBSTRING('hello world', 9) |
  4. +-----------------------------+
  5. | rld |
  6. +-----------------------------+
  7. 1 row in set (0.00 sec)

0x03.2 substring 例子二

从字符串的第2个字符开始,只取3个字符

  1. mysql> SELECT SUBSTRING('hello world', 2, 3);
  2. +--------------------------------+
  3. | SUBSTRING('hello world', 2, 3) |
  4. +--------------------------------+
  5. | ell |
  6. +--------------------------------+
  7. 1 row in set (0.00 sec)

0x03.3 substring 例子三

从字符串的倒数第6个字符开始读取直至结束

  1. mysql> SELECT SUBSTRING('hello world', -6);
  2. +------------------------------+
  3. | SUBSTRING('hello world', -6) |
  4. +------------------------------+
  5. | world |
  6. +------------------------------+
  7. 1 row in set (0.00 sec)

0x03.4 substring 例子四

从字符串的倒数第4个字符开始读取,只取2个字

  1. mysql> SELECT SUBSTRING('hello world', -4, 2);
  2. +---------------------------------+
  3. | SUBSTRING('hello world', -4, 2) |
  4. +---------------------------------+
  5. | or |
  6. +---------------------------------+
  7. 1 row in set (0.00 sec)

0x04 substr 函数

substr 和substring 函数用法一样

截取特定长度的字符串

用法:

  • substr(str, pos),即: substr(被截取字符串, 从第几位开始截取)
  • substr(str, pos, length),即: substr(被截取字符串,从第几位开始截取,截取长度)

0x04.1 substr 例子一

从字符串的第1个字符开始读取直至结束

  1. mysql> SELECT substr('hello world', 1);
  2. +--------------------------+
  3. | substr('hello world', 1) |
  4. +--------------------------+
  5. | hello world |
  6. +--------------------------+
  7. 1 row in set (0.00 sec)

0x03.2 substr 例子二

从字符串的第2个字符开始,只取3个字符

  1. mysql> SELECT SUBSTR('hello world', 2, 3);
  2. +-----------------------------+
  3. | SUBSTR('hello world', 2, 3) |
  4. +-----------------------------+
  5. | ell |
  6. +-----------------------------+
  7. 1 row in set (0.00 sec)

0x05 mid 函数

得到一个字符串的一部分

用法:

  • MID(str, start [, length])
  • MID(str from start for length)
  • MID(str from 1)
  • 即: MID(被截取字符串, 从第几位开始截取, 截取长度);
  • 注: MID函数从1开始,而非0,length是可选项,如果没有提供,MID()函数将返回余下的字符串。

0x05.1 例子一

从第1个字符开始读取直至结束

  1. mysql> SELECT mid('hello world', 1);
  2. +--------------------------+
  3. | mid('hello world', 1) |
  4. +--------------------------+
  5. | hello world |
  6. +--------------------------+
  7. 1 row in set (0.00 sec)

0x05.2 例子二

从第2个字符开始读取3个字符

  1. mysql> SELECT mid('hello world', 2, 3);
  2. +--------------------------+
  3. | mid('hello world', 2, 3) |
  4. +--------------------------+
  5. | ell |
  6. +--------------------------+
  7. 1 row in set (0.00 sec)

0x05.3 例子三

从第2个字符开始读取3个字符

  1. mysql> select mid('hello' from 2 for 3);
  2. +---------------------------+
  3. | mid('hello' from 2 for 3) |
  4. +---------------------------+
  5. | ell |
  6. +---------------------------+
  7. 1 row in set (0.00 sec)

0x05.4 例子四

从第2个字符开始读取3个字符

  1. mysql> select mid('hello' from 3);
  2. +---------------------+
  3. | mid('hello' from 3) |
  4. +---------------------+
  5. | llo |
  6. +---------------------+
  7. 1 row in set (0.00 sec)

0x05.5 例子五

利用ascii 和mid 截取字符串

  1. mysql> select ascii(mid('hello' from 1));
  2. +----------------------------+
  3. | ascii(mid('hello' from 1)) |
  4. +----------------------------+
  5. | 104 |
  6. +----------------------------+
  7. 1 row in set (0.00 sec)
  8. mysql> select ascii(mid('hello' from 2));
  9. +----------------------------+
  10. | ascii(mid('hello' from 2)) |
  11. +----------------------------+
  12. | 101 |
  13. +----------------------------+
  14. 1 row in set (0.00 sec)

0x06:regexp 正则匹配

  • regexp :正则表达式的用法,user()结果为 root,regexp为匹配root的正则表达式。
  • select database() regexp ‘^se’ , ^ 代表字符串的起始位置.

0x07:like 函数

  • like select user() like ‘ro%’ ,使用like进行匹配