MySQL可以检查该文件是否存在?

前端之家收集整理的这篇文章主要介绍了MySQL可以检查该文件是否存在?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个表,其中包含HDD上实际文件的相对路径.例如:

SELECT * FROM images -->
id | path
1  | /files/1.jpg
2  | /files/2.jpg

我可以创建一个查询来选择指向不存在的文件的所有记录吗?我需要完全通过MysqL服务器检查它,而不使用PHP客户端中的迭代.

最佳答案
我会使用这样的查询

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

函数LOAD_FILE尝试将文件作为字符串加载,并在失败时返回NULL.

请注意,在这种情况下失败的原因可能是MysqL根本无法读取该特定位置,即使该文件确实存在.

编辑:

正如@ostrokach在评论中指出的那样,这不是标准的sql,即使MysqL允许它,也可以遵循标准:

SELECT *
FROM images
WHERE LOAD_FILE(PATH) IS NULL

猜你在找的MySQL相关文章