我有一个有400k帖子的mysql数据库。在大约100k的帖子是图像。例如:
text text text <img src="/images/test.jpg"> text text text
必须删除完整的图像字符串<img src="/images/test.jpg">
。但它并不总是<img src/images/test.jpg">
有很多变种。所以我无法使用典型的sql替换。
我需要的是“两个字符之间的sql替换”。对我来说,删除/替换"<img" and ">"
之间的所有内容,然后选择<img and >
这有可能吗? 谢谢
答案 0 :(得分:0)
MySQL支持正则表达式:
UPDATE Mytable SET url = '' WHERE url RLIKE someregex;
请参阅:http://dev.mysql.com/doc/refman/5.1/en/regexp.html
类似的东西:
UPDATE Mytable SET url = '' WHERE url RLIKE '\\<img.\\>'
但请注意 MySQL不支持正则表达式字符串的输出。它只会比较。
但是,有一个MySQL用户函数REGEX_REPLACE,请参阅:https://launchpad.net/mysql-udf-regexp
另请参阅此问题:How to count words in MySQL / regular expression replacer?