Hier ist mein Code so weit:Wie wählt man UNIX Datum = "2010" in MySQL Abfrage?
SELECT `date`, title, category, url
FROM cute_news
WHERE category = '4'
ORDER BY `date` DESC
ich Seiten auf dem Jahr machen will, wie 2010, 2009, 2008 und so weiter. Die Datenbank speichert das Datum als UNIX_Timestamp. Sie sind nicht sicher, wie Sie ein Recordset mit einem Year-Parameter abfragen können?
WHERE unix_timestamp(YEAR) = '2010' or something???
Vielen Dank im Voraus. Ich bin verwirrt.
Perfekt :-) Ich wusste, dass mir etwas einfach gefehlt ha. – eberswine
@eberswine: Denken Sie daran, dass eine solche Abfrage langsam ist, wenn Sie viele Zeilen in Ihrer Tabelle haben. Die Datenbank müsste einen vollständigen Tabellenscan durchführen, um die gewünschten Zeilen zu filtern ... Wenn Sie andererseits einen Index für die Spalte "Datum" erstellen (vorausgesetzt, es existiert noch keine), können Sie den Befehl verwenden 'UNIX_TIMESTAMP()' Funktion wie im zweiten Beispiel in meiner Antwort. Die Datenbank wäre dann in der Lage, den Index zu verwenden, um schnell die gewünschten Zeilen zu finden, ohne einen vollständigen Tabellenscan durchzuführen. –
@Daniel, das ist wahr, wenn das Datumsfeld der beste Diskriminator ist. Oft ist es natürlich auch möglich, MySQL die Option über Ihre Empfehlung zu geben, selbst wenn es nicht benötigt wird. – Matthew