0
点赞
收藏
分享

微信扫一扫

mysql 5中的REGEXP函数


在mysql中,可以使用正则表达式去进行匹配,比如在如下的场景,是十分有用的:


比如有如下的两个表

employee_hobby

id hobbies
--- --------
1 Travelling
2 Suring the Internet
3 Reading
4 Swimming
5 Meeting Friends
6 Cooking
. .
. .
10 Watching Movie

employee

id hobby_ids
--- ---------
1 1,4,3,6,10
2 1,3,4,10
3 7
. .
. .
10 3,5,6,9

employee表记录了某个员工的爱好有哪些,这里不是用典型的一对多来存储,而是用
逗号来进行分隔
那么,要找的是:
1) 有哪些人有4号的爱好

SELECT id FROM employee WHERE hobby_ids REGEXP "[[:<:]](4)[[:>:]]"


注意:
[[:<:]], [[:>:]]

这些标记表示word边界。它们分别与word的开始和结束匹配。word是一系列字字符,其前面和后面均没有字字符。字字符是alnum类中的字母数字字符或下划线(_)。

2)查找同时有这些爱好的:
SELECT id FROM employee WHERE hobby_ids REGEXP "[[:<:]](1|4|10)[[:>:]]"

举报

相关推荐

0 条评论