各位 请问下 这个SQL怎么写啊
select top 20 * from test where name like ? or info like ?
而且问号个数是随用户输入的关键词个数变化的
比如用户输入 jack lisa
select top 20 * from test where name like '%jack%' or info like '%jack%' or name '%lisa%' or info like '%lisa%'
用户输入 三个关键词 就变成三组 name 和info
------解决方案--------------------
加全文索引吧。
http://www.soft6.com/tech/16/163677.html
------解决方案--------------------
楼主,like的核心问题是,如果你用 %xxoo% 就没法使用常规索引。
所以基本上只有两种套路:
1、Like仅适用 xxoo%,那么这样仍然可以使用常规索引;
2、使用全文索引,Oracle自身是支持的,安装配套的组件包就行了;不过索引空间会很大。
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
会加索引不?加上,就行了,可提高效率的
------解决方案--------------------
非常喜欢全文索引;sql server用全文索引最简单;手动创建;so easy
------解决方案--------------------
SQL Server 的全文检索,通配符似乎应该是 * 而不是 %
SELECT * FROM categories
WHERE CONTAINS(description, '"sea*" or "bread*"')
多关键字用另一个函数:
SELECT * FROM categories
WHERE FREETEXT (Description, 'sweetest candy bread and dry meat' )