Sie sind Tabellenaliasnamen, sodass Sie nicht den gesamten Namen der Tabelle angeben müssen, wenn Sie darauf verweisen müssen.
Um nur die ungeradzahligen Datensätze zu erhalten, verwenden Sie:
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
Um die Datensätze mit gerader Nummer zu erhalten, verwenden Sie:
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
Erklärung
Der %
ist der Modulo-Operator in der MySQL-Syntax – er gibt den Rest der Division zurück. Zum Beispiel ist 1 % 2 0,5, während 2 % 2 null ist. Dies wird dann in der WHERE-Klausel verwendet, um die angezeigten Zeilen zu filtern.