我在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')
问题是,数据库的结果不会按列表的顺序返回。按顺序恢复它们的最佳方法是什么?
答案 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
是您要订购的字段。