本文共 4700 字,大约阅读时间需要 15 分钟。
字符‘^’匹配以特定字符或字符串开头的文本
1.查询以x开头的记录mysql> SELECT * -> FROM fruits -> WHERE f_name REGEXP '^x';+------+------+---------+---------+| f_id | s_id | f_name | f_price |+------+------+---------+---------+| b5 | 107 | xxxx | 3.60 || m2 | 105 | xbabay | 2.60 || t4 | 107 | xbababa | 3.60 |+------+------+---------+---------+3 rows in set (0.00 sec)
2查询以xx开头的记录
mysql> SELECT * -> FROM fruits -> WHERE f_name REGEXP '^xx';+------+------+--------+---------+| f_id | s_id | f_name | f_price |+------+------+--------+---------+| b5 | 107 | xxxx | 3.60 |+------+------+--------+---------+1 row in set (0.00 sec)
字符$匹配以特定字符或字符串结尾的文本
1.查询以e结尾的记录mysql> SELECT * -> FROM fruits -> WHERE f_name REGEXP 'e$';+------+------+--------+---------+| f_id | s_id | f_name | f_price |+------+------+--------+---------+| a1 | 101 | apple | 5.20 || bs1 | 102 | orange | 11.20 || t2 | 102 | grape | 5.30 |+------+------+--------+---------+3 rows in set (0.00 sec)
2.查询以go结尾的记录
mysql> SELECT * -> FROM fruits -> WHERE f_name REGEXP 'go$';+------+------+--------+---------+| f_id | s_id | f_name | f_price |+------+------+--------+---------+| m1 | 106 | mngo | 15.70 |+------+------+--------+---------+1 row in set (0.00 sec)
字符.匹配任意一个字符
1.查询包含r某y的记录mysql> SELECT * -> FROM fruits -> WHERE f_name REGEXP 'r.y';+------+------+------------+---------+| f_id | s_id | f_name | f_price |+------+------+------------+---------+| b1 | 101 | blackberry | 10.20 || b2 | 104 | berry | 7.60 || c0 | 101 | cherry | 3.20 |+------+------+------------+---------+3 rows in set (0.00 sec)
“*”可匹配前面多个字符,“+”至少匹配前面字符一次
mysql> SELECT * -> FROM fruits -> WHERE f_name REGEXP '^mn*';+------+------+--------+---------+| f_id | s_id | f_name | f_price |+------+------+--------+---------+| bs2 | 105 | melon | 8.20 || m1 | 106 | mngo | 15.70 |+------+------+--------+---------+2 rows in set (0.00 sec)
mysql> SELECT * -> FROM fruits -> WHERE f_name REGEXP '^mn+';+------+------+--------+---------+| f_id | s_id | f_name | f_price |+------+------+--------+---------+| m1 | 106 | mngo | 15.70 |+------+------+--------+---------+1 row in set (0.00 sec)
正则表达式可以匹配指定的字符串,只要这个字符串在查询文本中即可,如果要匹配多个字符串,多个字符串之间使用分隔符"|"隔开
1.查询包含字符串“ge”的记录
mysql> SELECT * -> FROM fruits -> WHERE f_name REGEXP 'ge';+------+------+--------+---------+| f_id | s_id | f_name | f_price |+------+------+--------+---------+| bs1 | 102 | orange | 11.20 |+------+------+--------+---------+1 row in set (0.00 sec)
2.查询包含“ge”或者"na"的记录
mysql> SELECT * -> FROM fruits -> WHERE f_name REGEXP 'ge|na';+------+------+--------+---------+| f_id | s_id | f_name | f_price |+------+------+--------+---------+| bs1 | 102 | orange | 11.20 || t1 | 102 | banana | 10.30 |+------+------+--------+---------+2 rows in set (0.00 sec)
方括号“[]”指定一个字符集合,只匹配其中任何一个字符。
1.查询包含字母“a”或者"e"的记录mysql> SELECT * -> FROM fruits -> WHERE f_name REGEXP '[ae]';+------+------+------------+---------+| f_id | s_id | f_name | f_price |+------+------+------------+---------+| a1 | 101 | apple | 5.20 || a2 | 103 | apricot | 2.20 || b1 | 101 | blackberry | 10.20 || b2 | 104 | berry | 7.60 || bs1 | 102 | orange | 11.20 || bs2 | 105 | melon | 8.20 || c0 | 101 | cherry | 3.20 || m2 | 105 | xbabay | 2.60 || t1 | 102 | banana | 10.30 || t2 | 102 | grape | 5.30 || t4 | 107 | xbababa | 3.60 |+------+------+------------+---------+11 rows in set (0.00 sec)
查询至少连续出现2次r的记录
mysql> SELECT * -> FROM fruits -> WHERE f_name REGEXP 'r{2,}';+------+------+------------+---------+| f_id | s_id | f_name | f_price |+------+------+------------+---------+| b1 | 101 | blackberry | 10.20 || b2 | 104 | berry | 7.60 || c0 | 101 | cherry | 3.20 |+------+------+------------+---------+3 rows in set (0.00 sec)
“[^字符集合]”匹配不在指定集合中的任何字符
匹配非101-104的记录mysql> SELECT * -> FROM fruits -> WHERE s_id REGEXP '[^101-104]';+------+------+---------+---------+| f_id | s_id | f_name | f_price |+------+------+---------+---------+| a2 | 103 | apricot | 2.20 || b5 | 107 | xxxx | 3.60 || bs1 | 102 | orange | 11.20 || bs2 | 105 | melon | 8.20 || m1 | 106 | mngo | 15.70 || m2 | 105 | xbabay | 2.60 || t1 | 102 | banana | 10.30 || t2 | 102 | grape | 5.30 || t4 | 107 | xbababa | 3.60 |+------+------+---------+---------+9 rows in set (0.00 sec)
转载地址:http://kzfnz.baihongyu.com/