关于MySQL数据库模糊查询优化问题

MySql 码拜 7年前 (2017-04-10) 1352次浏览
假设有一张users表,表中有uname1,uname2,uname3,uname4四个字段,现同一搜索框对这四个字段进行模糊查询,并根据最接近搜索关键词进行排序,目前的搜索语句如下:

select *,length(if(uname1 like "%{$keyword}%",uname1,if(uname2 like "%{$keyword}%",uname2,if(uname3 like "%{$keyword}%",uname3,uname4)))) as len from users where uname1 like "%{$keyword}%" or uname2 like "%{$keyword}%" or uname3 like "%{$keyword}%" or uname4 like "%{$keyword}%" order by len ASC limit 0,10

请高手看看有木有优化的方法,帮忙优化一下,感激不尽!

解决方案

50

引用:
Quote: 引用:

用mysql的全文索引吧,速度会明显提升

建了索引了,感觉也没快啊,关于MySQL数据库模糊查询优化问题

索引不起作用呗。
索引在 进行like “%xxx%”的时候是不起作用的。
所以,你可以用全文索引试试,具体的sql 语句写法会有不同,你可以在网上搜一下


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于MySQL数据库模糊查询优化问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)