我有这个问题:
SELECT
id, name
FROM
data
ORDER BY
FIELD(id, 4, 5, 8, 10) DESC,
name
Run Code Online (Sandbox Code Playgroud)
Ids 4, 5, 8, 10排名靠前.到现在为止还挺好.但后来我想排序name.这不起作用.可能FIELD已经确定了具体的订单吗?我可以更改SQL,这样我仍然可以告诉SQL哪些id应该在顶部(在真/假关系中)但是按名称进行最终排序?某种枚举?
ids FIELD(id, 4, 5, 8, 10)来自另一个来源.它们表示在外源中是否有给定id的数据.
你可以CASE WHEN像这样使用ANSI 92兼容.
SELECT
id, name
FROM
data
ORDER BY
CASE WHEN id IN (4, 5, 8, 10) THEN 0 ELSE 1 END ASC,
name
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
75 次 |
| 最近记录: |