Mysql查询以不同的顺序回归

时间:2014-02-20 05:59:01

标签: php mysql sorting

我有一个在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进行排序。

2 个答案:

答案 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)

您可以使用

ORDER BY FIND_IN_SET(id, ('21,10,25,4'))

完成此link