Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MYSQL liệt kê:@rownum, các bản ghi lẻ và chẵn

Chúng là bí danh của bảng, vì vậy bạn không cần phải chỉ định toàn bộ tên của bảng khi cần tham chiếu.

Để chỉ lấy các bản ghi được đánh số lẻ, hãy sử dụng:

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

Để nhận các bản ghi được đánh số chẵn, hãy sử dụng:

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

Giải thích

% là toán tử mô-đun trong cú pháp MySQL - nó trả về phần còn lại của phép chia. Ví dụ 1% 2 là 0,5, trong khi 2% 2 là 0. Sau đó, điều này được sử dụng trong mệnh đề WHERE để lọc các hàng được hiển thị.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không thể tìm thấy mysql.sock

  2. Chèn chậm Mysql

  3. CONCAT cột với Laravel 5 hùng hồn

  4. Làm thế nào để cài đặt gói MySQLdb? (ImportError:Không có mô-đun nào có tên là setuptools)

  5. Phân vùng bảng MySQL theo tháng