Mysql
 sql >> база данни >  >> RDS >> Mysql

MYSQL изброяване:@rownum, нечетни и четни записи

Те са псевдоними на таблица, така че не е нужно да посочвате цялото име на таблицата, когато трябва да направите справка.

За да получите само записи с нечетни номера, използвайте:

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

За да получите записи с четни номера, използвайте:

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

Обяснение

% е модулният оператор в синтаксиса на MySQL - връща остатъка от разделението. Например 1 % 2 е 0,5, докато 2 % 2 е нула. След това се използва в клаузата WHERE за филтриране на показаните редове.




  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 в отдалечен сървър от python

  2. SpringBoot MySQL JDBC Не може да се създадат първоначални връзки на пула

  3. Как да получите структура на базата данни в MySQL чрез заявка

  4. Не мога да използвам mysql_real_escape_string

  5. Най-лесният начин за PHP връзка за проверка на имейл