MySQL按数组值排序

时间:2011-11-08 18:13:13

标签: mysql arrays sorting sql-order-by

我需要运行一个MySQL查询,其中的顺序由数组值决定。

我的数组是可变的,但是数组中的值对应于我的数据库表中名为“ID”的字段,因此我希望以ID,顺序9,1,4返回结果。

Array ( [0] => 9 [1] => 1 [2] => 4 )

这在MySQL中是否可行,或者可以在之后使用数组对MySQL $结果进行排序?您可以假设返回的唯一值是数组中的值。

2 个答案:

答案 0 :(得分:66)

答案 1 :(得分:1)

您希望获取具有ID 5, 2, 1, 3的项目列表,并以相同的顺序输出它们。但是,只运行选择查询将按照1, 2, 3, 5的顺序返回项目。

要正确排序结果,您需要构建一个描述ID权重的ORDER BY项列表。这看起来像

ORDER BY id = 5 DESC, id = 2 DESC, id = 1 DESC, id = 3 DESC

转到this link获取详细信息。