碰到一个棘手的SQL语句:根据输入的关键词来获取表中三个字段中是否有相同的记录

mouzhi 2008-04-19 11:20:21
需求是这样的,通过输入关键词,查找表中歌名、歌手名、专辑名与所输入的关键词相同的记录。
关键词之间用空格隔开,可能输入的关键词只有一个,也可能有三个,但是这些关键词并不知道是与那个字段对应。

能否通过一个SQL语句把符合要求的记录查询出来呢?

请大家提宝贵意见,谢谢!
...全文
187 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
beeqee 2008-04-20
  • 打赏
  • 举报
回复
不知道你想要怎样的匹配
如果发用%这种模糊匹配的话,可以先对查询关键字做explode(' ', $keyword)

如果是要求字段值在关键字内,可以直接在SQL语句中用INSTRING
mouzhi 2008-04-19
  • 打赏
  • 举报
回复
谢谢!

如果是模糊搜索怎么写呢?
zl_c 2008-04-19
  • 打赏
  • 举报
回复
上面错了:
declare @key varchar(200)
set @key = '周杰伦 叶惠美 千里之外'
set @key = replace(@key,' ',',')
select * from [table1] where 歌名 in (@key) or 歌手名 in (@key) or 专辑名 in (@key)
zl_c 2008-04-19
  • 打赏
  • 举报
回复
写了个精确匹配的:
declare @key as varchar(200)
set @key = '周杰伦 叶惠美 千里之外'
set @key = replace(@key,' ',',')
select * from [table1] where 歌名 in (@key) or 歌手名 in (@key) or 专辑名 in (@key)
zl_c 2008-04-19
  • 打赏
  • 举报
回复
要精确匹配还是模糊匹配?

21,893

社区成员

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

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