Ich bin auf der Suche nach einer MySql-Abfrage, die letzten 6 Monaten Update Daten OR/UND, wenn die Summe der Ergebnisse weniger als 100 ist , die nächsten n Zeilen zu vervollständigen 100.MySQL Wählen Sie letzten 6 Monat oder wenn Ergebnis summe weniger 100 die 100 zuletzt eingefügten Zeilen
Die Tabelle Abfrage erstellen:
CREATE TABLE `content` (
`id` int(11) NOT NULL,
`id_cat` int(11) NOT NULL,
`title` text,
`lastUpdate` date NOT NULL,
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
ALTER TABLE `content`
ADD PRIMARY KEY (`id`);
ALTER TABLE `content`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10175;
Der erste Teil der Abfrage ist:
SELECT *
FROM content,
categories
WHERE categories.id = content.id_cat
AND lastUpdate > DATE_SUB(now(), INTERVAL 6 MONTH)
ORDER BY lastUpdate DESC,
content.id DESC,
content.title ASC
finde ich nicht Erklärungen, dies zu tun. Jemand könnte mir helfen?
'die nächsten n Zeilen 100' abzuschließen ... was ist die Logik, die bestimmt, was diese„nächsten n Zeilen“sind? –
Wenn Sie die aktuelle Reihenfolge verwenden möchten, um auch die Stop-Gap-Datensätze auszuwählen (um die Summe 100 zu erhalten, falls die Abfrage weniger zurückgibt), müssen Sie nur die Prüfung 'DATE_SUB' entfernen und' hinzufügen LIMIT 100' bis zum Ende Ihrer Anfrage. –
Diese Abfrage sollte die zuletzt aktualisierten Artikel zurückgeben. Aber wenn alle Artikel älter als 6 Monate aktualisiert werden, möchte ich die n (100?) Zuletzt eingefügte ID auswählen, um etwas anzuzeigen. Und wenn es in dieser Zeit nur zwei aktualisierte Artikel gibt, möchte ich die 98 zuletzt eingefügten Artikel auswählen. –