Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Kann MySQL überprüfen, ob die Datei existiert?

Ich würde mit einer Abfrage wie folgt vorgehen:

SELECT id, path, ISNULL(LOAD_FILE(path)) as not_exists
FROM images
HAVING not_exists = 1

Die Funktion LOAD_FILE versucht die Datei als String zu laden und gibt NULL zurück wenn es fehlschlägt.

Bitte beachten Sie, dass ein Fehler in diesem Fall darauf zurückzuführen sein kann, dass mysql diesen bestimmten Speicherort einfach nicht lesen kann, selbst wenn die Datei tatsächlich existiert.

BEARBEITEN:

Wie @ostrokach in Kommentaren betonte, ist dies kein Standard-SQL, obwohl MySQL es zulässt, um dem Standard zu folgen, der es sein könnte:

SELECT *
FROM images
WHERE LOAD_FILE(PATH) IS NULL