我有一个在mysql中运行的查询:
SELECT *
FROM title
WHERE id
IN (
(SELECT id
FROM title
WHERE id = '71'),
(SELECT id
FROM title
WHERE id = '49'),
(SELECT id
FROM title
WHERE id = '67'),
(SELECT id
FROM title
WHERE id = '75'),
(SELECT id
FROM title
WHERE id = '74')
)
我期待我的记录按顺序给出:71,49,67,75,74
但我得到的是按升序排列的。
我无法使用其他参数进行搜索。我需要的是我的记录按照我给出的顺序回来。是否有我可以发出的命令或我将如何处理它。
再一次,我不能使用另一个查询参数进行排序,因为我没有。我只是按照它们被放入的顺序需要它们。
这甚至可能吗?
谢谢!
PS:PhP解决方案只有在我读取$ row之前才能对$ result进行排序。
答案 0 :(得分:3)
使用FIELD
功能 - http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_field
或FIND_IN_SET
- http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_find-in-set
/* your query begin */ ORDER BY FIELD(`id`, 71, 49, 67, 75, 74)
答案 1 :(得分:0)