重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
MYSQL中查询表中按字段降序排列的前N条记录模式:
盱眙ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!
SELECT 字段名[ , 字段名...] FROM 表名 WHERE 条件 LIMIT 数量 ORDER BY 字段名 DESC
例如:
1
select id,name,email from test where age 19 limit 5 order by id desc;
上面例子从test表查询所有age小于19的按id降序排序的前5条记录的id,name,email信息。
LIMIT限制查询数量,ORDER BY指出按什么排序,DESC表示按降序排序。
如果是php的话可以以数组的形式从数据库中取出来,然后以:
rsort() - 以降序对数组排序
arsort() - 根据值,以降序对关联数组进行排序
krsort() - 根据键,以降序对关联数组进行排序
如果是mysql数据库的话,完全可以根据查询语句进行正序还是倒序,
倒序语句为:SELECT * from 表名 ORDER BY 根据排序的字段名 DESC;
其他的语言和表没有接触过,新手码农,新手知道,望采纳!
-------------------------------------------方法1
select * from (
select
tablename_tmp.*,
@rownum:=@rownum+1 ,
if(time =DATE_FORMAT(now(),'%Y-%m-%d %H:00') ,@rank:=@rank+1,@rank:=0) as rank
from (
select * from tablename order by time desc
)
tablename_tmp ,
(select @rownum :=0 , @ptime := null ,@rank:=0) a
) a
order by rank desc ,time desc
---------------------------------------方法2
select * from tablename order by
(case when DATE_FORMAT(time ,'%k')=0 then 24 when DATE_FORMAT(time ,'%k')*1=DATE_FORMAT(now(),'%k')*1 then DATE_FORMAT(time ,'%k') else 25 end) ,time desc
题主测试一下?你这里的24点应该是第二天的00:00:00 。你这样排有什么用处?
MySQL排序 有时候很容易记混,我这里把他记录了下:
desc是降序
asc是升序(默认不写就是升序)
MySql语句:
1.带条件的排序
2.不带条件的sql直接排序