gpt4 book ai didi

MySQL 查询可变数据

转载 作者:行者123 更新时间:2023-11-29 12:12:41 24 4
gpt4 key购买 nike

我已经使用通配符搜索了各种 MySQL 查询,并替换了调用,但我无法准确找到我要查找的内容。

由于帖子插件中的亚马逊产品升级,我需要更新整个网站的短代码。此字符串替换调用必须处理变量字符串:

妈妈博客的 WordPress 数据库内部:

我必须更换

[AMAZONPRODUCT=B0084IG8TM]

[amazon-element asin="B0084IG8TM" fields="title,sm-image,new-price,button"]

因此,调用必须识别基本字符串,然后识别可变的 10 个字符的产品代码,并将内容括在方括号内的该 10 个字符的字符串周围。

建议?非常感谢。

最佳答案

您可以像这样获取子字符串(前提是其始终由 10 个字符组成,后跟 ]):

select substring(right('[AMAZONPRODUCT=B0084IG8TM]', 11), 1, 10)

首先,它使用 right() 取出最后 11 个字符,然后使用 substring() 取出前 10 个字符

然后您可以将输出插入 concat() 调用中以获取必需的字符串:

select concat('[amazon-element asin="', substring(right('[AMAZONPRODUCT=B0084IG8TM]', 11), 1, 10), '" fields="title,sm-image,new-price,button"]')

然后您可以构建一个更新查询,如下所示:

update <your_table>
set your_field = concat('[amazon-element asin="', substring(right('[AMAZONPRODUCT=B0084IG8TM]', 11), 1, 10), '" fields="title,sm-image,new-price,button"]')
where your_field like '[AMAZONPRODUCT=%'

好吧,那么字符串中的任意位置都可以,只要字符串中只有ONCE就可以了,还是比较简单的。如果它可以在字符串中多次出现,请忘记使用查询来执行此操作,而使用 php 脚本或其他脚本来执行此操作。 (或多次运行更新,直到所有出现的情况都发生更改)

update wp_posts
set post_content = concat(left(post_content, locate('[AMAZONPRODUCT=', post_content) -1), '[amazon-element asin="',substring(post_content, locate('[AMAZONPRODUCT=', post_content) + 15, 10), '" fields="title,sm-image,new-price,button"]', substring(post_content, locate('[AMAZONPRODUCT=', post_content) + 26))
where post_content like '%[AMAZONPRODUCT=%'

demo here

关于MySQL 查询可变数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30386669/

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