首页 > 解决方案 > 使用列中的开始和结束索引修剪不需要的文本

问题描述

我在 MySQL Server 5.7 数据库中有一个表。该表有一个varchar(256)名为“url”的列。很遗憾,

此字段中的值包含路径,在导入 WordPress 博客时不包含。例如,网址'time-for-land-audit'实际上存储为

'**/articles/2013/02/27/time-for-land-audit**'在表中。

我想更新此表中的所有记录以删除日期格式

 (**/articles/YYYY/MM/DD/**). 

如何一次更新所有记录以删除多余的空格?

标签: mysqlsqlwordpressmysql-workbench

解决方案


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:请务必先在数据的测试样本上测试这是否符合您的要求!您不会想惊讶地发现您已经破坏了您唯一的数据副本。


推荐阅读