我的表结构是
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'
答案 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;