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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值