sql >> データベース >  >> RDS >> Mysql

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は、クライアントが正常であることを確認するためのものです。



    1. SQLServerのSTATISTICSIOとは何ですか?

    2. 複数の値を取得するためのDjangoMySQLの個別のクエリ

    3. SQLの概要

    4. MySQL Ubuntu14.04LTSを完全に削除します