求最优SQL语句

Steven_Qin 2009-09-19 01:24:26
有两个Field1 Field2。 我输入几个关键词,要求搜索得出
1. 在Field1和Field2同时包含这几个关键词.

多谢!
...全文
88 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
luoyoumou 2009-09-19
  • 打赏
  • 举报
回复
--1. 在Field1和Field2同时包含这几个关键词(用CHARINDEX函数,不用加%了)
--语法如下:
SELECT * FROM tb
WHERE ( CHARINDEX('keyA1',field1)>0 AND CHARINDEX('keyA2',field1)>0 AND ... AND CHARINDEX('keyAN',field1)>0 )
AND ( CHARINDEX('keyB1',field2)>0 AND CHARINDEX('keyB2',field1)>0 AND ... AND CHARINDEX('keyBN',field1)>0 )

--举例如下:
SELECT * FROM tb
WHERE CHARINDEX('key1',field1)>0 AND CHARINDEX('key1',field2)>0
zhengduan964532 2009-09-19
  • 打赏
  • 举报
回复

select * from tb where field1 like '%keys%' and field2 like '%keys%'
xiaozhangnima 2009-09-19
  • 打赏
  • 举报
回复
像乔峰哥学习
soft_wsx 2009-09-19
  • 打赏
  • 举报
回复
select * from tb
where (patindex('%keys%',field1)>0 and patindex('%keys%',field2)>0)
billpu 2009-09-19
  • 打赏
  • 举报
回复
select * from tb where field1 like '%key1%' and field1 like '%key2%' and filed 1 like '%keyN%' and field2 like '%key1%' and field2 like '%key2% and field2 like '%keyN%'
Steven_Qin 2009-09-19
  • 打赏
  • 举报
回复
select * from tb where field1 like '%keys%' and field2 like '%keys%'

假如有几个keys,是否在循环里加入还是
select * from tb where field1 like '%key1%key2...%' and field2 like '%key1%key2%'
or
select * from tb where field1 like '%key1%' and field1 like '%key2%' and filed 1 like '%keyN%' and field2 like '%key1%' and field2 like '%key2% and field2 like '%keyN%'

htl258_Tony 2009-09-19
  • 打赏
  • 举报
回复
没有最优,只有更优.

select 8 from tb where field1 like '%keys%' and field2 like '%keys%'

22,298

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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