从列中删除地址

时间:2017-08-29 00:43:16

标签: mysql

我的数据库中有一个包含类似于此

的文本的列

CNEWS # Trinidad : "By Any Means Necessary" Watson Duke Swims And Sails To Toco http://somewebsitehere.com

如何从列中删除整个http地址?请注意,某些链接可能会被破坏,因此可能会有http:// somewebsitehere.com

我正在考虑使用子字符串索引,但不确定它是否可行。

1 个答案:

答案 0 :(得分:0)

您可以使用您喜欢的编程语言来迭代表中的行,拔出该列,对其应用正则表达式替换规则,然后使用新值更新表中的行。

这是一些伪代码:

theRows = SELECT * FROM TheTable WHERE 1;
foreach row in theRows
BEGIN
    oldColumnValue = row[theColumnName]
    // Removes any link appearing at the end of the column
    newColumnValue = oldColumnValue.replace(/http:\/\/[^\s]*$/, '')
    UPDATE TheTable SET theColumnName = newColumnValue WHERE id = row[id]
END

对于像这样小而特殊的东西,你可以使用perl和DBI库连接到mySQL。如果您想更多地了解正则表达式,这是一个有用的资源:http://www.regular-expressions.info/perl.html