gpt4 book ai didi

使用 LIKE 和通配符匹配除空字符串以外的任何内容的 MySQL 查询

转载 作者:行者123 更新时间:2023-11-29 04:48:34 26 4
gpt4 key购买 nike

我有一个名为 images 的表,其中有一个字段 image_filename。我注意到一些已存储的图像在文件扩展名后有字符,这些字符无法正确加载。所以说文件名是 image.jpg 这很好,可以忽略,但是如果文件名是 image.jpg%3fhf43h408 那么我需要删除这个图像。到目前为止,这是我尝试选择所有在扩展后有内容的图像的查询:

SELECT `images`.* FROM images
WHERE `images`.`image_filename` LIKE '%.jpg\%'

这会返回所有图像,即使扩展后没有任何图像。如何让查询仅返回扩展后有内容的图像。为了增加额外的困惑,扩展后的内容似乎总是以百分号开头,因此我试图在查询中将其转义为文字百分号而不是通配符。我也尝试了以下方法:

SELECT `images`.* FROM images
WHERE `images`.`image_filename` LIKE '%.jpg\%' escape '\'

但这不起作用,它只是说我有一个错误

最佳答案

要将反斜杠标识为转义字符,您需要使用双反斜杠来表示单个反斜杠。

您还需要一个通配符 % 来匹配字符串的其余部分。

要识别包含文字 '.jpg%' 的行,您可以使用:

LIKE '%.jpg\%%' ESCAPE '\\'

识别不以文字 '.jpg' 结尾的列值

NOT LIKE '%.jpg'

NOT REGEXP '\.jpg$'

关于使用 LIKE 和通配符匹配除空字符串以外的任何内容的 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14709349/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com