使用 IN 条件时自动排序 mariadb

Automatic order by when using IN condition mariadb

假设我有以下名为 'ingredients' 的数据库 table:

+----+--------------+---------+
| id | ingredientID |  name   |
+----+--------------+---------+
|  4 |            1 | Pepper  |
|  5 |            3 | Onion   |
|  6 |            9 | Mustard |
|  7 |            6 | Tomato  |
+----+--------------+---------+

如果我使用这个查询:

SELECT * FROM ingredients WHERE ingredientID IN(1,6,3,9)

我得到按其 id 排序的结果:胡椒、洋葱、芥末、番茄。

但是我想按照我问他们的顺序取回结果:胡椒、番茄、洋葱、芥末。

我将如何实现这一目标?

函数FIELD():

SELECT * FROM ingredients 
WHERE ingredientID IN (1,6,3,9)
ORDER BY FIELD(ingredientID,1,6,3,9) 

参见demo
结果:

| id  | ingredientID | name    |
| --- | ------------ | ------- |
| 4   | 1            | Pepper  |
| 7   | 6            | Tomato  |
| 5   | 3            | Onion   |
| 6   | 9            | Mustard |