mysql - 用列中的单个空格替换多个空格
问题描述
有很多行在列中有多个空格,title
我想用一个空格替换它们。
update abc set title = REPLACE(title, " ", " ");
什么都没有被替换。
我正在使用 phpMyAdmin。
我注意到(单击Simulate query
我的查询转换为的按钮:
update abc set title = REPLACE(title, " ", " ");
所以用单个空格替换单个空格。
有什么帮助吗?
解决方案
连续空格字符的数量可以是奇数或偶数。您可以用一个空格字符替换两个空格字符,并在修改后的字符串上再次进行类似的替换以覆盖所有奇数/偶数情况。
UPDATE abc SET title = REPLACE(REPLACE(title, ' ', ' '), ' ', ' ');
解释:
- 2 个空格:第一次替换将转换为 1 个空格。第二次替换不会进一步修改。
- 3 个空格:第一次替换会将 (2+1) 个空格转换为 (1+1) 个空格。第二个将 (1+1 = 2) 个空格转换为 1 个空格。
- 4 个空格:第一次替换会将 (2+2) 个空格转换为 (1+1) 个空格。第二个将 (1+1 = 2) 个空格转换为 1 个空格。
等等...
演示:
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)
推荐阅读
- java - 存储为超类时取回子类
- kubernetes - 在 Helm Chart 中执行命令
- html - 使用 jquery 删除 `display:none` 属性后,我无法显示用户数据
- python - 在所需表格需要用户输入的地方读取 html
- gatsby - Gatsby 图像流体拉伸到超出容器的垂直尺寸
- sql - 避免在 PL/SQL 中从双重联合中选择
- sql - SQL 提取不同的值并创建 ID
- django - 注册到 Django Admin 的用户模型
- codesys - 带有 FB_Init 的功能块的持久变量列表
- python-3.x - 适用于 Windows 的 AWS CLI 版本下载链接