4 mysql
列中有很多行有多个空格title,我想用一个空格替换它们。
update abc set title = REPLACE(title, " ", " ");
Run Code Online (Sandbox Code Playgroud)
什么都没有被取代。
我正在使用 phpMyAdmin。
我注意到(单击Simulate query我的查询转换为的按钮:
update abc set title = REPLACE(title, " ", " ");
Run Code Online (Sandbox Code Playgroud)
所以用单个空格替换单个空格。
有什么帮助吗?
小智 8
在检查此页面时,我注意到要替换数据库中的所有双空格,您可能在单个记录上有三倍或更多空格。
某些解决方案没有考虑到的事情。因此您需要确保您的语句将它们全部替换。用单空格替换双空格一次或两次可能无法覆盖所有损坏的数据。
例如,记录值为'A B C'; 你能做的是:
<>,或[]或{}...><都会被删除。][}{<>将更改回' '我总是使用类似以下内容来修复我的数据:
UPDATE Table1 SET Column1 = REPLACE(REPLACE(REPLACE(Column1, ' ', '<>'), '><', ''),'<>',' ');
Run Code Online (Sandbox Code Playgroud)
连续空格字符的数量可以是奇数或偶数。您可以用一个空格字符替换两个空格字符,并在修改后的字符串上再次执行类似的替换以涵盖所有奇数/偶数情况。
UPDATE abc SET title = REPLACE(REPLACE(title, ' ', ' '), ' ', ' ');
Run Code Online (Sandbox Code Playgroud)
解释:
等等...
演示:
mysql> select
-> dt.test_str,
-> REPLACE(REPLACE(dt.test_str, ' ', ' '), ' ', ' ') AS modified
-> FROM
-> (SELECT 'thi s is a weird string' AS test_str) AS dt ;
+--------------------------------+--------------------------+
| test_str | modified |
+--------------------------------+--------------------------+
| thi s is a weird string | thi s is a weird string |
+--------------------------------+--------------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)