[英]Find and replace a specific part of a string with a backslash in a field
例如,这是myTable
:
| i | data |
+---+---------+
| 1 | d\one |
| 2 | d\two |
| 3 | d\three |
但是我想把它改成:
| i | data |
+---+-------+
| 1 | one |
| 2 | two |
| 3 | three |
我知道如何在字段中使用反斜杠查找字符串的特定部分:
SELECT * FROM myTable WHERE data LIKE 'd%\%'
我知道如何查找和替换字段值,只有这个查询不起作用:
UPDATE myTable SET data=REPLACE(data,'d\','') WHERE data LIKE 'd%\%'
试试这个......
UPDATE myTable SET `data`=REPLACE(`data`,'d\','');
我希望你应该在Like Clause
加上三次斜杠\\\\\\
而不是双斜杠\\\\
。 正如我所尝试的那样,我无法从使用\\\\
选择数据
SELECT * FROM mytable WHERE data LIKE 'd\\%';
Empty set (0.00 sec)
mysql> SELECT * FROM mytable WHERE data LIKE 'd\\\%';
+---------+
| data |
+---------+
| d\one |
| d\two |
| d\three |
+---------+
3 rows in set (0.00 sec)
mysql> SELECT REPLACE(data,'d\\','') FROM mytable WHERE data LIKE 'd\\\%';
+------------------------+
| REPLACE(data,'d\\','') |
+------------------------+
| one |
| two |
| three |
+------------------------+
3 rows in set (0.00 sec)
mysql> UPDATE mytable SET data = REPLACE(data,'d\\','') WHERE data LIKE 'd\\\%';
Query OK, 3 rows affected (0.06 sec)
Rows matched: 3 Changed: 3 Warnings: 0
mysql> SELECT * FROM mytable;
+-------+
| data |
+-------+
| one |
| two |
| three |
+-------+
3 rows in set (0.00 sec)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.