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)[[:>:]]"


猜你喜欢

转载自jackyrong.iteye.com/blog/2074580
今日推荐