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

Pencacahan MYSQL:@rownum, catatan ganjil dan genap

Mereka adalah alias tabel, jadi Anda tidak perlu menentukan seluruh nama tabel saat Anda perlu membuat referensi.

Untuk mendapatkan hanya catatan bernomor ganjil, gunakan:

SELECT x.*
  FROM (SELECT u.pg_id AS ID, 
               u.pg_url AS URL,
               u.pg_title AS Title,
               u.pg_content_1 AS Content,
               @rownum := @rownum + 1 AS rownum
          FROM root_pages u
          JOIN (SELECT @rownum := 0) r
         WHERE u.parent_id = '7'
           AND u.pg_id != '7'
           AND u.pg_cat_id = '2'
           AND u.pg_hide != '1'
      ORDER BY u.pg_created DESC) x
WHERE x.rownum % 2 != 0

Untuk mendapatkan data bernomor genap, gunakan:

SELECT x.*
  FROM (SELECT u.pg_id AS ID, 
               u.pg_url AS URL,
               u.pg_title AS Title,
               u.pg_content_1 AS Content,
               @rownum := @rownum + 1 AS rownum
          FROM root_pages u
          JOIN (SELECT @rownum := 0) r
         WHERE u.parent_id = '7'
           AND u.pg_id != '7'
           AND u.pg_cat_id = '2'
           AND u.pg_hide != '1'
      ORDER BY u.pg_created DESC) x
WHERE x.rownum % 2 = 0

Penjelasan

% adalah operator modulus dalam sintaks MySQL -- ia mengembalikan sisa pembagian. Misalnya 1% 2 adalah 0,5, sedangkan 2% 2 adalah nol. Ini kemudian digunakan dalam klausa WHERE untuk memfilter baris yang ditampilkan.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pernyataan KASUS SQL

  2. Menggunakan variabel di MySQL UPDATE (PHP/MySQL)

  3. PHP/MySQL:Buat koneksi baru untuk setiap kueri?

  4. mencocokkan kata-kata dengan tanda aksen, umlaut, dll. mysql/php

  5. Mengapa pembatas digunakan dengan prosedur tersimpan di mysql?