我有一个表,其中的一列可以包含:“kldr”、“bgg”或一个整数。
现在我想要一个查询,其结果按以下顺序排列:
1. kldr
2. kldr
3. bgg
4. bgg
5. 1
6. 2
7. 3
8. etc.
谁能帮帮我吗?我当前的查询显然不起作用。
SELECT *
FROM table
WHERE column_x='$value_x'
ORDER BY column_y LIKE '%kldr%' ASC, LIKE '%bgg%' ASC, floor ASC
最佳答案
您可以在 ORDER BY
子句中使用 CASE
表达式:
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
关于PHP + MySQL - 排序查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35313408/