LIKE中的Mysql查询列表顺序

时间:2017-04-06 14:09:04

标签: mysql sql

我的表结构是

id | name 
--------
1    Test name

2    Test name1

3    Name1

4    name2 

5    Name6

6    Name7

7    AA Name1

8   AA Name2

如果使用查询

select name from table like '%na%' order by name asc limit 5;

结果将是

AA Name1

AA Name2

Name1

Name2

Name6

我需要一个查询来显示以下结果

Name1

Name2

Name6

Name7

AA Name1

因为我有桌子  如果我键入p我需要结果 perl,php,phython之前' apple script'

1 个答案:

答案 0 :(得分:1)

您可以使用CASE中的ORDER BY来确定记录是否以na开头。

SELECT name 
FROM table 
WHERE name LIKE '%na%'
ORDER BY CASE WHEN name LIKE 'na%' THEN 0 ELSE 1 END, name
LIMIT 5;

或者您可以使用na按记录中INSTR的位置排序。

SELECT name 
FROM table 
WHERE name LIKE '%na%'
ORDER BY INSTR(name,'na'), name
LIMIT 5;