我的数据库存在一些问题。我有一些http://
和一些https://
链接。我需要将所有http://
切换为https://
,但是有一个小问题,一些链接是重复的(有两个版本)所以如果我尝试更改,我将得到重复错误。
我怎样才能找到这些?我已经考虑过使用正则表达式[.]com\/[a-zA-Z]*
来修饰http://www.somewebsite.com/abc.gif
到.com/abc
(这意味着所有都是.com当然,如果不是,它将无效)。
有人可以帮我构建一个SQL命令吗?我尝试使用mariadb REGEXPR_SUBSTR
,但我没有得到任何地方,因为它会将每一行与所有行进行比较,取无穷大。
谢谢!
答案 0 :(得分:3)
您可以通过两个步骤轻松完成:
1)将所有 http:替换为 https:,并使用 UPDATE IGNORE
UPDATE IGNORE yourTable
set yourField = replace(yourField, 'http:', 'https:')
WHERE yourField LIKE 'http:%';
2)选择或删除所有ROWS以 http:
开头SELECT yourTable WHERE yourField LIKE 'http:%';