求一段正规MYSQL表达式~

stan23 2003-12-22 12:28:31
数据库表(t1)中一个子段(c1),形式是:"3,6,24,25,112",即一些数字组
给定一个数字,如何到表中把数字组中包含该数字的项目找出来?

简单的select * from t1 where c1 regexp '$num'是不行的,因为$num是5的话,会把25也错当成符合的数据

为了效率,也不能采用‘先把表中数据提出来,explode\,后逐个判断’的方法~

就是希望用一行SQL语句来实现
...全文
111 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
stan23 2003-12-22
  • 打赏
  • 举报
回复
select * from t1 where c1 regexp '(^|,)($num|$num2)(,|$)'
stan23 2003-12-22
  • 打赏
  • 举报
回复
不好意思,我刚COPY代码错误,唠叨那个是可以的,而且很简练~
请问哪里有MYSQL的正规表达式的在线手册/帮助?
stan23 2003-12-22
  • 打赏
  • 举报
回复
TO 唠叨
谢谢!不过这样的话就不能匹配开头和结尾的2个数字~
我已经弄出来了:
'^([0-9]+,)*$num(,[0-9]+)*$';

现在的问题是,$num是一组数字的话,比如7,12
相当于,两次REGEXP,$num分别取7,12
利用一个REGEXP,该如何写?同样要考虑到数字混淆的问题~
xuzuning 2003-12-22
  • 打赏
  • 举报
回复
select * from t1 where c1 regexp '(^|,)$num(,|$)'

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧