Syntax fehler bei DELETE
Literunner
- datenbank
Moinsen,
ich möchte gerne alle Datensätze löschen, die älter sind als 7 Tage. Dabei muss noch "ok" den Wert 1 haben.
DELETE FROM tbl_eintrag AS k WHERE k.startdate < date_add(current_date, interval -7 day) AND ok = 1
Leider bekomme ich immer einen Syntax Fehler:
Fehler:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS k WHERE k.startdate < date_add(current_date, interval -7 day) AND ok ' at line 1
Vielleicht jemand eine Idee wo das Syntax Problem liegt?
Vielen Dank
Mahlzeit,
mal ganz ohne test: courent_date()
Die Klammern sind IMO nötig.
Tach!
mal ganz ohne test: courent_date()
Die Klammern sind IMO nötig.
Nö, CURRENT_DATE gibt es mit und ohne Klammern. Aber wenn wir schon dabei sind, man kann das Konstrukt
date_add(current_date, interval -7 day)
noch leicht verkürzen:
CURRENT_DATE - INTERVAL 7 DAY
dedlfix.
Moinsen,
danke. Habe das jetzt ohne AS gemacht.
Nö, CURRENT_DATE gibt es mit und ohne Klammern. Aber wenn wir schon dabei sind, man kann das Konstrukt
date_add(current_date, interval -7 day)
noch leicht verkürzen:
CURRENT_DATE - INTERVAL 7 DAY
Funktioniert auch 1A :)
Vielen Dank
Literunner
Tach!
DELETE FROM tbl_eintrag AS k WHERE k.startdate < date_add(current_date, interval -7 day) AND ok = 1
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS k WHERE k.startdate < date_add(current_date, interval -7 day) AND ok ' at line 1
Wenn das AS angemeckert wird, dann lass es weg. Bei einem einzigen Tabellennamen einen Alias zu verwenden, ist nur Mehrarbeit.
dedlfix.