着急:按搜索精确度排序的问题!
我有一个表users,有字段name,address,等,我想查模糊查询name,(mname like '%" & keywords & "%')搜索关键词:张丽,查出比如:张丽丽,张丽,张丽理,张丽群等,我想按照精确度来排序,排序:张丽,张丽丽,张丽理,张丽群,最准确的搜索结果在前面,应该怎么办?求救各位,谢谢了
[解决办法]
DECLARE @keywords VARCHAR(10)SET @keywords='张丽'SELECT * FROM users WHERE PATINDEX('%'+@keywords+'%',name)>0 ORDER BY PATINDEX('%'+@keywords+'%',name)
[解决办法]
create table tb(mname varchar(10))insert into tb values('张丽丽')insert into tb values('张丽')insert into tb values('张丽理')insert into tb values('张丽群')goselect * from tb where mname like '%张丽%' order by len(mname) , mnamedrop table tb/*mname ---------- 张丽张丽理张丽丽张丽群(所影响的行数为 4 行)*/
[解决办法]
select *from tb where mname like '%张丽%' order by isnull(abs(unicode('丽') - unicode(substring(mname,charindex('张丽',mname)+2,1))),0),len(mname) mname----------张丽张丽丽dsaf张丽张丽理ds张丽理张丽群s张丽群(7 row(s) affected)