gpt4 book ai didi

mysql 使用 UPDATE SET 和 TRIM(记录中的前导通配符前缀)更新数据库

转载 作者:行者123 更新时间:2023-11-30 00:06:49 24 4
gpt4 key购买 nike

在我的数据库中,有一个名为“内容”的表和一个名为“链接”的字段,该表中有近 300,000 条记录。

在名为“链接”的字段中,有许多如下所示的记录:

http://www.example.com/blah/blah/123456789/url=http://www.destination.com

不幸的是,记录的前缀部分是单独唯一的,其中编号部分在 90 到 150 个字母数字字符之间不断变化

我想删除 url= 之前的前缀和/或包括 url=

因此记录中只剩下:

http://www.destination.com

我什至可以一起工作

网址= http://www.destination.com 并简单地对“url=”部分执行替换命令作为第二个 mysql 命令。

如果有通配符命令,这项工作会容易得多,我只需对以下链接记录中显示的所有内容进行通配符即可: http://www.example.com/blah/blah/ 通配符 url=但众所周知...没有这样的通配符可用

所以它让我查看了 UPDATE、SET 和 TRIM(LEADING 命令

更新内容设置链接 =TRIM(LEADING 'url=' FROM link)

但这并没有产生我想要的改变

因此,我采取了下载数据库并使用搜索和替换程序来更改包含这些参数的 44,000 条记录的劳动密集型方法。

但我很想找到一个可以简单地传递到数据库的命令,以便将来变得更简单。

任何关于 future 如何实现这一改变的想法将不胜感激。

提前致谢;

最佳答案

您可以使用 SUBSTRING_INDEX 函数:

UPDATE content SET link=SUBSTRING_INDEX( `link` , 'url=', -1 )

我还没有测试过它,所以我建议您首先检查 substring_index 是否返回所需的字符串。

关于mysql 使用 UPDATE SET 和 TRIM(记录中的前导通配符前缀)更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24469772/

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