无法用phpMyAdmin替换mySQL中的../

时间:2015-04-20 21:29:30

标签: mysql phpmyadmin

我尝试使用以下方式进行REPLACE:

UPDATE wp_posts SET post_content=REPLACE (post_content, 'src=..\wp-content','src='wp-content')

数据库表示它成功了,但影响了0行。

我可以直接在post_content中搜索%..\wp-content%并查找条目,以便我知道它们存在。

如何查找/替换这些条目(..\wp-content)?

由于

1 个答案:

答案 0 :(得分:3)

你必须双击你的反斜杠。

UPDATE .... 'src=..\\wp-content'etc...

由于\w不是sql元字符,因此sql解析器会将其简化为简单的w

e.g。

mysql> create table foo (x varchar(16));

mysql> insert into foo (x) values ('foo\war'), ('foo\\war');

mysql> select * from foo;
+---------+
| x       |
+---------+
| foowar  |
| foo\war |
+---------+

注意单反斜杠现在已经消失了,表中只有foowar。这意味着您的where条款:

mysql> select * from foo where x='foo\war';
+--------+
| x      |
+--------+
| foowar |
+--------+
1 row in set (0.00 sec)

mysql> select * from foo where x='foo\\war';
+---------+
| x       |
+---------+
| foo\war |
+---------+