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

MySQL membatasi hasil per kategori

MySQL tidak memiliki fungsi peringkat, tetapi Anda dapat menggunakan variabel untuk membuat nomor baris psuedo.

Gunakan:

SELECT x.*
  FROM (SELECT cm.id,
               cm.title AS cmtitle,
               cm.sectionid,
               cm.type AS cmtype,
               cd.id AS cd_id,
               cd.time,
               cd.link,
               cd.title,
               cd.description,
               cd.sectionid AS cd_sectionid,
               CASE
                 WHEN @sectionid != cm.sectionid THEN @rownum := 1 
                 ELSE @rownum := @rownum + 1
               END AS rank,
               @sectionid := cm.sectionid
          FROM C_MAIN cm,
               C_DATA cd,
               (SELECT @rownum := 0, @sectionid := NULL) r
         WHERE cm.sectionid = cd.sectionid
      ORDER BY cm.sectionid) x
 WHERE x.rank <= 20
ORDER BY id


  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 - pesan berdasarkan nilai string terlebih dahulu

  2. MySQL Isi tanggal yang hilang di antara dua tanggal untuk status tertentu

  3. Pernyataan MySQL membutuhkan waktu lebih dari satu menit untuk dieksekusi

  4. Mencari nama lengkap atau nama depan atau belakang di database MySQL dengan nama depan dan belakang di kolom terpisah

  5. Temukan dan hapus baris duplikat dengan dua kolom