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

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

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

Contains 只能查几条记录,

怎么 怎样才能像 like '%中国%' 结果一样,而且速度又快?
...全文
124 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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


又什么办法可以代替?
回复
zsh0809 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
回复
zsh0809 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= '' --总页数

回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2010-10-17 09:10
社区公告
暂无公告