Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wyliczenie MYSQL:@rownum, nieparzyste i parzyste rekordy

Są to aliasy tabel, więc nie musisz podawać całej nazwy tabeli, gdy potrzebujesz odwołać się.

Aby uzyskać tylko nieparzyste rekordy, użyj:

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

Aby uzyskać rekordy o numerach parzystych, użyj:

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

Wyjaśnienie

% jest operatorem modułu w składni MySQL -- zwraca resztę z dzielenia. Na przykład 1% 2 to 0,5, a 2% 2 to zero. Jest to następnie używane w klauzuli WHERE do filtrowania wyświetlanych wierszy.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak włączyć logi powolnych zapytań w AWS RDS MySQL?

  2. Zduplikowane wpisy w DB

  3. Maksymalna długość kolumny JSON w MySQL

  4. Łącznik MySQL dla Pythona

  5. Porządkowanie wierszy PHP mysql