说到MySQL的模糊匹配,大家都能想到like,很少人会知道regexp,regexp 可以实现更强大的模糊匹配功能,而且还有很多其他好用的功能。
比如有一个学生表 student ,要查询姓赵、王、李、陈的学生,用like写会啰嗦,而且性能不好:
SELECT * FROM student WHERE name like '赵%' or name like '王%' or name like '李%' or name like '陈%' ;
用regexp 写则很简单:
SELECT * FROM student WHERE name REGEXP '^赵|^王|^李|^陈' ;
示例:
1,匹配以陈开头的学生:
SELECT * FROM student WHERE name REGEXP '^陈'
;
2,匹配以豪结尾的学生:
SELECT * FROM student WHERE name REGEXP '豪$'
;
3,匹配名字中含有 英、雄、豪、杰 其中一个字的学生
SELECT * FROM student WHERE name REGEXP '英
|雄
|豪
|杰
' ;
或者 SELECT * FROM student WHERE name R