mysql - 使用列中的开始和结束索引修剪不需要的文本
问题描述
我在 MySQL Server 5.7 数据库中有一个表。该表有一个varchar(256)
名为“url”的列。很遗憾,
此字段中的值包含路径,在导入 WordPress 博客时不包含。例如,网址'time-for-land-audit'
实际上存储为
'**/articles/2013/02/27/time-for-land-audit**'
在表中。
我想更新此表中的所有记录以删除日期格式
(**/articles/YYYY/MM/DD/**).
如何一次更新所有记录以删除多余的空格?
解决方案
mysql> SELECT SUBSTRING_INDEX('/articles/2013/02/27/time-for-land-audit', '/', -1) AS short_url;
+---------------------+
| short_url |
+---------------------+
| time-for-land-audit |
+---------------------+
作为更新,它看起来像这样:
UPDATE mytable SET url = SUBSTRING_INDEX(url, '/', -1)
有关文档,请参阅https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_substring-index。
PS:请务必先在数据的测试样本上测试这是否符合您的要求!您不会想惊讶地发现您已经破坏了您唯一的数据副本。
推荐阅读
- python - Numpy einsum 二维数组的外部总和
- node.js - AWS Lamda 中的节点功能超时
- kubernetes - 由于内存问题,Kubernetes MySQL pod 被杀死
- r - dygraph 为空白,但 xts 对象有观察结果
- python - 如何使用(父母和孩子)在 django 中创建子菜单?
- java - 自定义验证器和@Validate
- python - 在等效的 Python switch case 中执行数学运算
- selenium - 引诱报告 Team City 插件导致构建仅挂在运行测试的构建步骤上
- reactjs - 如何在另一台计算机上加载 react-app
- java - 执行 jar 文件方法并检索返回