您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Mysql-如何通过交替(1,2,3,1,2,3,1,2,3,)行来排序结果,有可能吗?

Mysql-如何通过交替(1,2,3,1,2,3,1,2,3,)行来排序结果,有可能吗?

采用:

SELECT x.client_id, 
       x.project_id,
       x.project_name
  FROM (SELECT t.client_id,
               t.project_id,
               t.project_name,
               CASE
                 WHEN @client_id != t.client_id THEN @rownum := 0
                 WHEN @client_id = t.client_id THEN @rownum := @rownum + 1
                 ELSE @rownum 
               END AS rank,
               @client_id := t.client_id
          FROM TABLE t,
               (SELECT @rownum := 0, @client_id
      ORDER BY t.client_id) r) x
ORDER BY x.rank, x.client_id

MysqL没有任何排名功能,但是幸运的是您可以使用变量。关键是在client_id与先前的client_id不匹配时重置@rownum值- 子查询中的ORDER BY是为了确保客户机顺序正确。

MySQL 2022/1/1 18:21:07 有466人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶