当我使用WHERE IN
语句运行查询时,似乎会自动对返回的product_id进行排序。
$SQL = "SELECT * FROM PIM WHERE product_id in (10,8,1,3)";
foreach($conn->query($sql) as $row) {
echo $row['product_id'] . "<br>";
}
结果:
1
3
8
10
我希望他们按照他们输入的顺序(10,8,1,3)
返回答案 0 :(得分:3)
由于在您的原始查询中您没有指定MySQL应该使用哪个订单然后使用ASC,请尝试使用ORDER BY FIELD(),如下所示:
SELECT * FROM PIM WHERE product_id in (10,8,1,3) ORDER BY FIELD(product_id, 10,8,1,3);
答案 1 :(得分:2)
尝试:
select * from PIM where id in (1,3,8,10) order by find_in_set(id,'10,8,1,3');