我需要运行一个MySQL查询,其中的顺序由数组值决定。
我的数组是可变的,但是数组中的值对应于我的数据库表中名为“ID”的字段,因此我希望以ID,顺序9,1,4返回结果。
Array ( [0] => 9 [1] => 1 [2] => 4 )
这在MySQL中是否可行,或者可以在之后使用数组对MySQL $结果进行排序?您可以假设返回的唯一值是数组中的值。
答案 0 :(得分:66)
ORDER BY field(id, 9, 1, 4);
http://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_field
答案 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获取详细信息。