如何通过精确匹配首先使用MySQL

时间:2015-07-09 11:09:06

标签: mysql sql

我正在使用MySQL 5.5,这就是为什么我不能使用FULLTEXT搜索,所以请不要建议。

我想要做的是,如果用户我有5条记录,例如:

Amitesh
Ami
Amit
Abhi
Arun

如果有人搜索Ami,那么它应该首先返回Ami作为完全匹配然后Amit& Amitesh

3 个答案:

答案 0 :(得分:17)

你可以这样做:

select *
from table t
where col like '%Ami%'
order by (col = 'Ami') desc, length(col);

答案 1 :(得分:0)

SELECT *
FROM table t
WHERE col LIKE '%Ami%'
ORDER BY INSTR(col,'Ami') asc, col asc;

答案 2 :(得分:0)

使用 like 中的 order by 可以找到更准确的输出。

SELECT * FROM `table_name` WHERE col LIKE '%ami%' order by (col LIKE 'ami%') desc;