我有一个PHP数组的行ID来从MySQL数据库中检索。
$ids = array(35, 20, 1, 5);
有没有什么方法可以构建一个SQL查询,从数据库中检索具有特定ID顺序的行的资源?
换句话说,返回的行列表首先是ID为35的行,然后是ID为20的行,依此类推。
答案 0 :(得分:3)
在PHP / Javascript端进行排序会更容易,但有一种方法可以解释如何在SQL中执行此操作:
select * from whatever where id in (35,20,1,5) order by
case id when 35 then 0 when 20 then 1 when 1 then 2 when 5 then 3 end
答案 1 :(得分:3)
试试这个
<?php
$ids = array(35, 20, 1, 5);
$q = 'select * from table where id in ('.implode(',',$ids).') order by find_in_set(id, \''.implode(',',$ids).'\')' ;