我的数据库中有一个包含类似于此
的文本的列 CNEWS # Trinidad : "By Any Means Necessary" Watson Duke Swims And Sails To Toco http://somewebsitehere.com
如何从列中删除整个http地址?请注意,某些链接可能会被破坏,因此可能会有http:// somewebsitehere.com
我正在考虑使用子字符串索引,但不确定它是否可行。
答案 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