引言
在MySQL中,我们常用LIKE关键词对文本进行搜索,但是LIKE关键词的搜索能力有限,当随着搜索条件越来越复杂,LIKE关键词进行搜索的复杂度会随之增加,因此,在必要的时候,我们需要使用正则表达式进行搜索。
正则表达式是用来匹配文本的特殊的字符集合,正则表达式的功能十分强大。如:可以从一个文本文件中提取电话号码;可以查找名字中有数字的所有文件;可以在一个文本块中找到所有重复的单词;可以替换一个页面中所有的URL;等等。
一、正则表达式基本语法
在MySQL中使用正则表达式搜索,需要使用关键词REGEXP,其基本语法与LIKE关键词一致:
select col from table1 where col regexp 'abc';
二、正则表达式搜索的优点
在上面的例子中,我们似乎可以使用LIKE关键词完成相同功能:
select col from table1 where col like 'abc';
其实,在上面的例子中,这两句话返回的结果可能一致,但也可能不一致,这可以算是正则表达式搜索的一个优点。
在LIKE关键词搜索中,LIKE关键词匹配整个列,如果被匹配的文本在列值中出现(即只是这个列的值得一部分),LIKE关键词将不会找到它,相应的行也不会返回(除非