Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 特定排序SQL命令_Mysql_Sql - Fatal编程技术网

Mysql 特定排序SQL命令

Mysql 特定排序SQL命令,mysql,sql,Mysql,Sql,假设我有一张类似于: ID Name 1 Test 2 Contest 3 Fittest 4 Testament 我是否可以使用MySQL查询进行排序,以允许它首先显示特定的单词 例如,用户正在搜索单词“Test”。我有一个类似于“SELECT*FROMtableWHERE NAME,比如“%Test%”的语句。我是否可以显示结果,以显示以Test begin开头的内容,然后是其他内容,而所有内容仍按字母顺序排列 因此,产出将是: Test Testam

假设我有一张类似于:

ID    Name
1     Test
2     Contest
3     Fittest
4     Testament
我是否可以使用MySQL查询进行排序,以允许它首先显示特定的单词

例如,用户正在搜索单词“Test”。我有一个类似于“SELECT*FROM
table
WHERE NAME,比如“%Test%”的语句。我是否可以显示结果,以显示以Test begin开头的内容,然后是其他内容,而所有内容仍按字母顺序排列

因此,产出将是:

Test
Testament
Contested
Fittest

谢谢。

这将把以Test开头的单词放在顶部,并按字母顺序将这些单词加上列表的其余部分进行排序

SELECT * FROM table 
WHERE NAME LIKE '%Test%'
order by case when name like 'test%' then 0 else 1 end
SELECT * FROM mytable 
ORDER BY CASE WHEN name LIKE 'test%' THEN 0 ELSE 1 END ASC, name ASC

这似乎适用于第一部分,将“Test%”放在第一位,但并非所有内容都是按字母顺序排列的。例如,输出类似于:TestTestTestFittest Competited