SQL, "WHERE IN" returns 自动排序结果
SQL, "WHERE IN" returns automatically sorted result
当我 运行 使用 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) 中输入的顺序返回
由于在您的原始查询中您没有指定 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);
勾选这个great answer for more details。
尝试:
select * from PIM where id in (1,3,8,10) order by find_in_set(id,'10,8,1,3');
当我 运行 使用 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) 中输入的顺序返回
由于在您的原始查询中您没有指定 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);
勾选这个great answer for more details。
尝试:
select * from PIM where id in (1,3,8,10) order by find_in_set(id,'10,8,1,3');