sql中order進行複雜排序

2022-10-10 23:12:21 字數 481 閱讀 3295

現有一網紅表,每乙個網紅都已乙個直播開始時間和直播結束時間,現在我想在列出網紅列表的時候,把當前時間正在直播的網紅放在前面;

使用where語句中的between能把正在直播的篩選出來,但我並不是把正在直播的篩選出來,只是把他們靠前排列。

如果先查詢出來結果,再迴圈判斷重新排序的話看似可以,但注意我每次查詢出的結果只是很少的一部分,只能確定這一部分中的排序,而我需要把所有正在直播的往前放。

使用order將正在直播的靠前排序,所以order中就需要用到判斷

$list = $reduser->where($map)->order('show_timedate_format(now(),"%h%i%s") desc,show_time asc')->select();

主要語句是 show_timedate_format(now(),"%h%i%s") desc

解釋為:直播時間小於當前時間 並且 結束時間大於當前時間  按降序排序

SQL聯查語句加上order排序之後速度超級慢

專案中使用到了分頁查詢,形式如下 1 select from2 3select row number over order by a.id0 as seq,a.from 4pms t d stakecoordinate a 5left join zy t d route b on a.route c...

sql 按照任意順序進行排序

建立一張表 create table stut id int,na varchar 20 插入4條資料。insert into stut values 1,aa insert into stut values 2,bb insert into stut values 3,df insert into...

利用case when進行sql動態排序

乙個sql動態排序的問題,弄了我很久很久。就是無法解決。結果在網上找了一段資源幫我解決。如下 sql排序方法,exec法和case when法 在日常的報表中常用到排序,有些是多字段的公升,降序,一般有兩種方法,如下所示 create table tmp row int,id nvarchar 10...