重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
你好,mysql中如果是将输出结果按照某字段排序可以写为:
创新互联公司专注于长安企业网站建设,响应式网站,购物商城网站建设。长安网站建设公司,为长安等地区提供建站服务。全流程按需求定制制作,专业设计,全程项目跟踪,创新互联公司专业和态度为您提供的服务
select *from 表名 (where 条件)order by id;这个默认是升序,
不过你说的按id分成几段输出,意思是否是需要分页,分页的话可以写成:
select * from 表名 (where 条件)limit 0,3;(从0开始,每页3个);
楼上的统领答案是正确的,原理很简单,希望楼主能够明白。
我给个简单的给你试试看:
SELECT *, (ID-1)/2 AS ID1, (ID-1) MOD 2 AS ID2 FROM 表名字 ORDER BY ID1, ID2
原理是把ID除2的商和余数取出来,先按照商进行排序,对于商相同的两个ID按照余数排列,例如:
ID (ID-1)/2的商 (ID-1)/2的余数
1 0 0
2 0 1
3 1 0
4 1 1
5 2 0
6 2 1
7 3 0
8 3 1
原理懂了吧,很简单吧。但是可能有的数据库取余数的运算不是 A MOD B,而是函数的形式MOD(A,B),你要查一下你的数据库的手册。
MySQL的排序,使用order by来实现。
order by id asc,表示用id升序排列
order by id desc,表示用id降序排列
当需要用多个字段排序时,order by cdate desc,id asc,表示先用cdate降序排列,cdate相同的再用id升序排列
在MySQL中,可以指定按照多个字段进行排序。例如,可以使employee表按照d_id字段和age字段进行排序。排序过程中,先按照d_id字段进行排序,遇到d_id字段的值相等的情况时,再把d_id值相等的记录按照age字段进行排序。
查询employee表中的所有记录,按照d_id字段的降序方式和age字段的升序方式进行排序。
MySQL中排序输出需要用order by。
如图,test表中有如下数据:
现在分别要求按ID正序和倒序输出结果。
正序:
select * from test order by id;
结果:
倒序:
select * from test order by id desc;
结果:
前几天工作上遇到一个问题,在mysql数据查询的时候,使用的是in条件,而结果需要根据in来进行排序,当时尝试了几次都没成功,后来在度娘的帮助下,找到了解决办法:
select * from table_name where id in (6,2,1,10,5,7..)
查询的结果和in中的顺序并不一致,也就是说在批量查询时,mysql的查询并不是按照in中的值得顺序来查询的。那怎么才能保证和in查询中的顺序相同呢?
查询了资料发现有两种方式可以对in查询的结果进行排序。一种是order by find_in_set,另外一种是order by substring_index
1、select * from table_name where id in (6,2,1,10,5,7..) order by find_in_set(id,'6,2,1,10,5,7');
2、select * from table_name where id in (6,2,1,10,5,7..) order by substring_index('6,2,1,10,5,7',id,1);