为何查询的记录是倒过来的.
如何让查询记录按id('296727','296567','296507','296287')的顺序来排呢?
不用order by id desc; 这种.
求指教
补充:不用升序或者降序 就按id的顺序来排列.
譬如在296567后面加一个300000. 变成('296727','296567','300000','296507','296287');
查询记录 300000 是排在第三条记录..
为何查询的记录是倒过来的.
如何让查询记录按id('296727','296567','296507','296287')的顺序来排呢?
不用order by id desc; 这种.
求指教
补充:不用升序或者降序 就按id的顺序来排列.
譬如在296567后面加一个300000. 变成('296727','296567','300000','296507','296287');
查询记录 300000 是排在第三条记录..
in
是查询关键词,不是排序关键词,需要用 find
或者 find_in_set
两个关键词根据自定义 id
排序,参见文章: http://river0314.lofter.com/p...
sql语句指定排序只能用order by
如果按照你说的不按照id大小的顺序,只能自己建一个表,每个id设置一个排序号,然后在sql语句中关联这张表,按照排序号进行排序:如:
select t1.*
from t_order t1 inner join t_sort t2 on t1.id = t2.id
order by t2.sort_id
where id in (296727,296567,296507,296287) order by field(id, 296727,296567,296507,296287)
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
1 回答4.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
1 回答2.4k 阅读✓ 已解决
加上ORDER BY find_in_set(id,'296727,296567,296507,296287'));