且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

mysql 高级按查询排序

更新时间:2023-01-31 07:59:23

 SELECT id, TYPE FROM (
   SELECT id, TYPE, 
   IF(@myvar = 0 OR @myvar = TYPE, @counter := @counter + 1, @counter := 1) sequence,  
   @myvar := TYPE FROM mytable 
   JOIN (SELECT @myvar := 0, @counter := 0 ) a
   ORDER BY TYPE DESC, id) b 
ORDER BY sequence, TYPE DESC,  id

此查询适用于任何级别.

This query will work for any level.

如有必要,请放置外部查询以仅获取相关字段.

Put an outer query if necessary to fetch only relevant fields.

检查这个 SqlFiddle