我有一个产品列表,其中有一个 ID 列作为主键,类别 id 是一个外键。我想以某种方式覆盖它们。
ID | Name | CategoryID
----------------------------
1 | one | 1
2 | two | 2
3 | three | 1
4 | four | 3
5 | five | 5
6 | six | 4
7 | seven | 2
8 | eight | 1
如果上面是我的桌子。我想在 SQL 中获取它们,如下所示
如果想以某种方式订购这些产品,其中需要首先出现第 5 类的所有产品,我正在运行这样的查询。
SELECT * FROM Product ORDER BY CategoryID IN (5), ID
这很好地完成了这项工作。
但现在我需要先显示类别 id 5,然后先显示类别 id 2,其余的
如果我尝试
SELECT * FROM Product ORDER BY CategoryID IN (5), CategoryID IN (2), ID ASC
那行不通。
有什么建议么