在 vBulletin 论坛的 MySQL 数据库中获取外国主机上的所有 BBCode [img] 标签

问题描述

我们在外部服务上托管了一些图片,我想找到并迁移这些图片。 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 (将#修改为@)