我在我的数据库字符串中有www.domain.com和http://www.domain.com。我希望在http://之前添加所有条目,但不会影响其他网址,因此会:http://http://www.domain.com
这可以只使用mysql吗?我使用了REPLACE(字段,'www','http:// www'),但这也替换了http://www和http://http://www
提前致谢
修改
我忘了提到在该字段中可能存在不包含www或http://www的条目,因此我不想更改或者可能有像<p><a href="www.domain.com/">domain</a></p>
这样的条目,其中包含CONCAT ()在<p>
答案 0 :(得分:1)
尝试在更新中添加WHERE
子句,仅更新尚未包含“http://”的字段。像这样测试
SELECT CONCAT('http://', field) FROM foo WHERE LOCATE('http://', field)=0
并且您的UPDATE
语法将是:
UPDATE foo SET field=CONCAT('http://',field) WHERE LOCATE('http://', field)=0
答案 1 :(得分:0)
我不会担心性能,因为这似乎是一种一次性的脚本。也就是说,您可以将LEFT
和CONCAT
结合起来实现这一目标:
UPDATE mytable
SET mycolumn = CONCAT('http://',mycolumn)
WHERE LEFT(mycolumn,7) <> 'http://'
请注意我没有将CapItaliZation记入帐户。您可能还需要在将信息添加到数据库之前考虑清理信息,或者可能触发为您执行此操作。
答案 2 :(得分:0)
搜索和替换查询 - mysql替换
以下是在MySQL数据库表中替换字符串的SQL查询:
UPDATE table_name SET column_name = REPLACE(column_name,'original_string','replace_string')
以下是我在以前所有帖子中更改路径网址所做的工作。
UPDATE `wp_posts` SET `post_content` = REPLACE(`post_content`,'http://localhost/','https://sureshkamal1.wordpress.com/')