Contains结果比like少,但是like速度又太慢,怎么才能做到像like '&xx&'一样?

sw19810913 2010-10-17 09:10:19
如题,
Contains(title, ''中国'' )

like '%中国%' 可以查几万条记录

Contains 只能查几条记录,

怎么 怎样才能像 like '%中国%' 结果一样,而且速度又快?
...全文
172 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sw4433 2010-10-18
  • 打赏
  • 举报
回复
已经设置 全文索引 了, 可模糊查询还是慢啊
rucypli 2010-10-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 beirut 的回复:]
引用 2 楼 zsh0809 的回复:
like '%中国%'
====
前面有%的,索引失效。如有其他可替代的方法请考虑。

mssql这个是可以用到索引的。
关键是楼主讲的应该是mysql
[/Quote]
%%也能用索引?
rucypli 2010-10-17
  • 打赏
  • 举报
回复
用FREETEXTTABLE函数进行查找
sw19810913 2010-10-17
  • 打赏
  • 举报
回复
是 sqlserver2005


又什么办法可以代替?
「已注销」 2010-10-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 beirut 的回复:]

引用 2 楼 zsh0809 的回复:
like '%中国%'
====
前面有%的,索引失效。如有其他可替代的方法请考虑。

mssql这个是可以用到索引的。
关键是楼主讲的应该是mysql
[/Quote]
谢谢小爱提醒,我再确认下,谢谢。
一品梅 2010-10-17
  • 打赏
  • 举报
回复
字段上添加上索引
黄_瓜 2010-10-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zsh0809 的回复:]
like '%中国%'
====
前面有%的,索引失效。如有其他可替代的方法请考虑。
[/Quote]
mssql这个是可以用到索引的。
关键是楼主讲的应该是mysql
「已注销」 2010-10-17
  • 打赏
  • 举报
回复
like '%中国%'
====
前面有%的,索引失效。如有其他可替代的方法请考虑。
ACMAIN_CHM 2010-10-17
  • 打赏
  • 举报
回复
没办法。 这得全表扫描。速度上不去。
SQLCenter 2010-10-17
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 rucypli 的回复:]

引用 3 楼 beirut 的回复:
引用 2 楼 zsh0809 的回复:
like '%中国%'
====
前面有%的,索引失效。如有其他可替代的方法请考虑。

mssql这个是可以用到索引的。
关键是楼主讲的应该是mysql

%%也能用索引?
[/Quote]

类似 like 'abc%' 这种,2005可以利用索引,like '%abc%'/ like '%abc'都是不可以的。
sw19810913 2010-10-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 rucypli 的回复:]
用FREETEXTTABLE函数进行查找
[/Quote]

在这个存储过程中怎么用 FREETEXTTABLE 函数??


exec sp_PageView
@tbname='news', --要分页显示的表名
@FieldKey='id', --用于定位记录的主键(惟一键)字段,只能是单个字段
@PageCurrent='1', --要显示的页码
@PageSize='10', --每页的大小(记录数)
@FieldShow='', --以逗号分隔的要显示的字段列表,如果不指定,则显示所有字段
@FieldOrder='id desc', --以逗号分隔的排序字段列表,可以指定在字段后面指定DESC/ASC
--用于指定排序顺序

--@Where=' title like +''%中国%'' ', --查询条件

@Where=' Contains(title, ''中国'' ) ', --查询条件
@PageCount= '' --总页数

22,301

社区成员

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

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