PHP + MySQL - 排序查询

Ram*_*ker 2 php mysql sql sorting

我有一个包含列的表,可以包含:"kldr","bgg"或整数.

现在我想按以下顺序查询结果:

 1. kldr 
 2. kldr 
 3. bgg 
 4. bgg 
 5. 1  
 6. 2 
 7. 3
 8. etc.
Run Code Online (Sandbox Code Playgroud)

谁能帮我吗?我当前的查询显然不起作用.

SELECT * 
FROM table 
WHERE column_x='$value_x' 
ORDER BY column_y LIKE '%kldr%' ASC, LIKE '%bgg%' ASC, floor ASC
Run Code Online (Sandbox Code Playgroud)

Gio*_*sos 5

您可以CASEORDER BY子句中使用表达式:

SELECT * 
FROM table 
WHERE column_x='$value_x' 
ORDER BY CASE WHEN column_y LIKE '%kldr%' THEN 1
              WHEN column_y LIKE '%bgg%' THEN 2
              ELSE column_y + 2
         END
Run Code Online (Sandbox Code Playgroud)