$id_arr = array(2,6,3,10);//排好序的id列表
$sql = "select user,id from user_member where id in (".implode(",",$id_arr).")";
本来对id排序好了,结果查出来sql会自动对id再排序,怎么能按$id_arr
的顺序显示呢?
$id_arr = array(2,6,3,10);//排好序的id列表
$sql = "select user,id from user_member where id in (".implode(",",$id_arr).")";
本来对id排序好了,结果查出来sql会自动对id再排序,怎么能按$id_arr
的顺序显示呢?
数据库 不会按你想的那样来做. 数据库自己的标准, 怎样使查询更有效率.
在这里, 要么全表扫一遍(或覆盖索引), 要么按索引查询.
要得到你的结果, 要么在sql里做一些比较tricky的事情, 要么放在你的php里排序.
select user, id
from
(select user,id, field(id, 2,6,3,10) row
from user_member
where id in (2,6,3,10)) TMP
order by row;
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
5 回答1.4k 阅读
order by null