如何从MySQL表中的有序ID列表中获取有序行的列表?

时间:2011-04-26 10:20:30

标签: php mysql

我在PHP工作,我有一个id列表,排名第一,其中第一个是最重要的。我正在使用类似的东西检索行(为了清晰起见,简化了):

$id_as_sql_list = implode("','", $id_list);

$sql = "SELECT * FROM books
WHERE id in ('$id_as_sql_list')";

这基本上可以解释为:

WHERE id in ('456', '123', '789')

问题是,数据库的结果不会按列表的顺序返回。按顺序恢复它们的最佳方法是什么?

3 个答案:

答案 0 :(得分:4)

按字段语法查看。

这是一个例子

select * from table
where id in (x,y,z)
order by field(id,x,y,z)

答案 1 :(得分:0)

$sql = "SELECT * FROM books
WHERE id in ('$id_as_sql_list')
ORDER BY YourRankingField ";

答案 2 :(得分:0)

使用ORDER BY

$sql = "SELECT * FROM books
WHERE id in ('$id_as_sql_list') ORDER BY whatever";

其中whatever是您要订购的字段。