如何查找具有相似字符串(正则表达式)的记录?

时间:2018-03-10 18:21:01

标签: mysql mariadb

我的数据库存在一些问题。我有一些http://和一些https://链接。我需要将所有http://切换为https://,但是有一个小问题,一些链接是重复的(有两个版本)所以如果我尝试更改,我将得到重复错误。

我怎样才能找到这些?我已经考虑过使用正则表达式[.]com\/[a-zA-Z]*来修饰http://www.somewebsite.com/abc.gif.com/abc(这意味着所有都是.com当然,如果不是,它将无效)。

有人可以帮我构建一个SQL命令吗?我尝试使用mariadb REGEXPR_SUBSTR,但我没有得到任何地方,因为它会将每一行与所有行进行比较,取无穷大。

谢谢!

1 个答案:

答案 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:%';