Frage

Dies ist eine Folgefrage zu einer Frage, bei der ich gestern hier Hilfe bekommen habe, aber es ist ein etwas anderes Problem – ich versuche zu überprüfen, ob ein MySQL-Zeitstempel eines Datenbankeintrags mit 7 Tagen in der Vergangenheit übereinstimmt (Stunden und Sekunden usw. werden ignoriert). , aber ich erhalte die Fehlermeldung „Spalte ‚Importdatum‘ in der Where-Klausel ist nicht eindeutig“. Kann jemand das Problem erkennen?

Dies ist der Datumsvergleich:Zeitstempel, z. B. 13.07.2010 11:04:27

WHERE date_format( `import_date`, "%Y-%m-%d" ) =
    date_format( date_sub( now(), INTERVAL 11 DAY ), "%Y-%m-%d" ) 
War es hilfreich?

Lösung

Was Ihren mehrdeutigen Fehler betrifft, müssen in der Abfrage zwei Tabellen mit jeweils einer vorhanden sein import_date Spalte.Sie müssten verwenden

WHERE date_format( `YourTableName`.`import_date`, "%Y-%m-%d" ) =
    date_format( date_sub( now(), INTERVAL 11 DAY ), "%Y-%m-%d" ) 

Ich möchte jedoch hinzufügen, dass Ihre obige Abfrage ineffizient sein wird, da dies nicht der Fall ist SARGABLE

Ich kenne mich mit MySQL nicht gut genug aus, um genau zu wissen, was es tut, aber es ist auf jeden Fall besser, wenn Sie es umschreiben

WHERE `YourTableName`.`import_date` = x

oder

WHERE `YourTableName`.`import_date` between x and y

wie angemessen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top