sql查询的相关问题

ssssssssbbbbbbbbbbbb 2012-05-04 09:59:07
表结构
id name nasid
1 nas1 1,2,3
2 nas2 2,3,4
3 nas3 2,3,5


我现在有个两个nasid:1,2
我想查询上面三条数据中nasid包含1,2(至少包含一个数字)的所有数据

这个sql该怎么写呢,请各位高手给点思路,尝试过like,但是效率太低
...全文
139 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hilojack 2012-05-04
  • 打赏
  • 举报
回复
正则简单一点的还行,稍复杂的一点的就相当不给力了。有现在的函数当然得用现成的函数.
to amani11:既然说到全表扫描的问题,你是怎么做的呢?
ci1699 2012-05-04
  • 打赏
  • 举报
回复
正则跟like差不多吧……,就只是方便些拉,像你那样的情况应该是find_in_set快些,有,分隔。
  • 打赏
  • 举报
回复
刚才测试了下,唠叨哥的方法执行速度比ci1699哥的方法执行速度要快点
  • 打赏
  • 举报
回复
非常谢谢各位帮忙。
ci1699 2012-05-04
  • 打赏
  • 举报
回复
用正则找吧。。


SELECT * FROM `2012` WHERE `2012` REGEXP '(1|2)+'

刚测了一下,你可到我系统test数据库中执行一下看看
amani11 2012-05-04
  • 打赏
  • 举报
回复
全表扫描,效率高不了的
xuzuning 2012-05-04
  • 打赏
  • 举报
回复
select * from 表 where find_in_set('1',nasid) or find_in_set('2',nasid)

4,250

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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