第一步:确定输出内容,你要的字段为name,数据结果为b,d,a,c;第二步:找规律,b、d的online为1;a、c的位说明是按online降序;然后来看下b、d的online相同,viewnum为30和10,那么就是viewnum降序;如果a、c的viewnum也是降序那么规律就找到了,发现a为40、c为20,确实是降序,满足条件.第三步:总结规律就是先按online降序排序,之后再按viewnum降序排序.第四步:得出需要的sql.selectnamefromtablenameorderbyonlinedesc,viewnumdesc;
- 文化问答
- 答案列表
sql多条件排序:sql中多条件排序问题[朗读]
如果楼主是新手的话,建议还是百度一下mysql的基础语句用法,orderby可以实现按照某个列来排序,加上逗号就可以多条件执行.先按照第一个排序,之后按照第二个进行排序。
orderby后可加2个字段,用英文逗号隔开.f1用升序,f2降序,sql该这样写orderbyf1,f2desc也可以这样写,更清楚:orderbyf1asc,f2desc如果都用降序,必须用两个descorderbyf1desc,f2desc。
用case进行转义就可以了selectt1.a,t2.b,t1.c,t2.cfromt1innerjoint2ont1.c=t2.cwheret1.ain('11','55','33','88')orderbycaset1.awhen'11'then1when'55'then2when'33'then3when'88'then4end意思是将t1.a的值根据条件转为1,2,3,4这样的数据来排序你测试一下是不是你要的结果。
orderby后可加2个字段,用英文逗号隔开.1、f1用升序,f2降序,sql该这样写;orderbyf1,f2desc2、也可以这样写,更清楚;orderbyf1asc,f2desc3、如果都用降序,必须用两个desc;