关于多个like如何使用

追风筝的孩子 2014-12-24 05:50:19
我有一个表,大概有uri, filename ,number 这几个字段

我输入一个bai + 空格 + mp3,他能查询出uri,filename以及number有bai和mp3的结果集,请问这sql怎么写。

ps:http://baids.sds.mp3是可以被查出来的,但http://baids.sd.mp4是不能被查出来的
...全文
321 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
李小冲 2014-12-31
  • 打赏
  • 举报
回复
使用lucene吧
roundman 2014-12-25
  • 打赏
  • 举报
回复
引用 1 楼 ayayad 的回复:
需要对输入值进行一下处理

-- 方法一,对输入顺序有要求,如mp3+空格+bai就不行
SELECT * FROM 表 WHERE uri LIKE '%bai%mp3%' AND filename LIKE '%bai%mp3%' AND number LIKE '%bai%mp3%'
-- 方法二
SELECT * FROM 表 WHERE uri LIKE '%bai%' AND filename LIKE '%bai%' AND number LIKE '%bai%' AND uri LIKE '%mp3%' AND filename LIKE '%mp3%' AND number LIKE '%mp3%'
字段之间似乎应该用or,不应该用and
benluobo 2014-12-25
  • 打赏
  • 举报
回复
例如这种需求,应使用全文索引
chengchow2001 2014-12-25
  • 打赏
  • 举报
回复
你可以用正则匹配 ... regexp 'bai.*mp[34]'
ayayad 2014-12-24
  • 打赏
  • 举报
回复
需要对输入值进行一下处理

-- 方法一,对输入顺序有要求,如mp3+空格+bai就不行
SELECT * FROM 表 WHERE uri LIKE '%bai%mp3%' AND filename LIKE '%bai%mp3%' AND number LIKE '%bai%mp3%'
-- 方法二
SELECT * FROM 表 WHERE uri LIKE '%bai%' AND filename LIKE '%bai%' AND number LIKE '%bai%' AND uri LIKE '%mp3%' AND filename LIKE '%mp3%' AND number LIKE '%mp3%'

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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