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)
您可以CASE在ORDER 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)
| 归档时间: |
|
| 查看次数: |
42 次 |
| 最近记录: |