Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Mysql - Bagaimana cara mengurutkan hasil dengan bergantian (1,2,3, 1, 2, 3, 1, 2, 3,) baris, apakah mungkin?

Gunakan:

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 tidak memiliki fungsi peringkat, tetapi untungnya Anda dapat menggunakan variabel. Kuncinya adalah menyetel ulang nilai @rownum ketika client_id tidak cocok dengan client_id sebelumnya - ORDER BY di subquery adalah untuk memastikan bahwa klien dalam urutan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MYSQL - Pilih hanya jika baris di LEFT JOIN tidak ada

  2. Menampilkan gambar dari database MySQL dalam tabel data JSF

  3. cara membuat db mysql dengan sqlalchemy

  4. DATEDIFF() Contoh – MySQL

  5. Simpan IPv6 dalam database