sql >> Databáze >  >> RDS >> Mysql

Výčet MYSQL:@rownum, liché a sudé záznamy

Jsou to aliasy tabulek, takže když potřebujete vytvořit odkaz, nemusíte zadávat celý název tabulky.

Chcete-li získat pouze liché očíslované záznamy, použijte:

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

Chcete-li získat záznamy se sudým číslem, použijte:

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

Vysvětlení

% je modulový operátor v syntaxi MySQL -- vrací zbytek dělení. Například 1 % 2 je 0,5, zatímco 2 % 2 je nula. To se pak použije v klauzuli WHERE k filtrování zobrazených řádků.




  1. Funkce a operátory JSON v SQLite (úplný seznam)

  2. SQLite JSON_EXTRACT()

  3. Význam bajtů výpisu (systimestamp) Oracle

  4. Jak nainstalovat klienta SQL SQuirrel