例子语句(表名TAB1,时间字段D1,D2,D3,D4,D5):
10年积累的成都网站设计、成都做网站、外贸网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有黄州免费网站建设让你可以放心的选择与我们合作。
SELECT GREATEST(D1,D2,D3,D4,D5), ......
FROM TAB1
ORDER BY 1 DESC
说明,需要使用GREATEST函数,不能用MAX,MAX是计算列最大值的。
-------------------------------------------方法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 。你这样排有什么用处?
主要的作用主要确定该数据的唯一性。比如说id=1,name=张三。我们要在数据库中,找到这条数据可以使用select
*
from
表
where
id=1
这样就可以把张三查找出来了。而这个张三,也可以出现同名,所有用id来做主键。
而你说的insert
into
是插入操作。当id设置为了主键,再插入一个相同的主键值,就为报错误,并不会更新,你想要个更新就必须执行update。
select * from table order by 时间字段1 asc,时间字段2 desc
以上是两个时间字段,按时间1升序,时间2降序!
如果你只有一个时间段的时间,并且每次查询排序的话,就用楼上的代码!