问题描述
我们在外部服务上托管了一些图片,我想找到并迁移这些图片。 VB 使用 BBCodes,因此 DB 中的图像看起来像 [img]https://image.host/pics/x.jpg[/img]
。我的想法是过滤 https://image.host/pics/x.jpg
并检查它是否不包含 my-image.host
。我构建了以下查询:
SELECT
post.postid,post.threadid,@str:=RIGHT(lower(pagetext),LENGTH(pagetext) - 4 - LOCATE('[img]',pagetext)),@imageUrl:=left(lower(@str),LOCATE('[/img]',@str) - 1) AS imageUrl
FROM uhacks_forum.post
WHERE lower(pagetext) LIKE '%[img]%'
这给了我一个 imageUrl
列,期望值为 https://image.host/pics/x.jpg
。现在我只想过滤那些不包含 my-image.host
的:
...
WHERE lower(pagetext) LIKE '%[img]%'
AND @imageUrl NOT LIKE '%my-image.host%'
但它返回给我一行 包含 my-image.host
而不是相反的。 AND locate('my-image.host',@imageUrl) = 0
甚至不返回任何结果。
为什么我不能应用过滤器来仅获取外国主机上的过滤器?我有很多行不包含 my-image.host
,它们显示时没有第二个 WHERE
条件。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)