MySQL – 替换部分以 '/' 结尾的字符串

标签 mysql sql replace phpmyadmin

我对 SQL 的经验很少。我陷入了看似非常简单的任务 - 我已将一行契约(Contract)号复制到一个文件中,其中包括两位数的年份号(EG 1/14、31/15、221/17)新的“年份”行。

现在我需要用“20”字符串替换正斜杠和斜杠本身留下的数字以获得完整的年份(EG 2014、2015、2017)。该行是 VARCHAR。

我正在尝试这个:

UPDATE contracts SET year = REPLACE(year, '%/', '20')

或者这个:

UPDATE contracts SET year = REPLACE(year, '*/', '20')

它没有抛出错误,但没有更新任何内容(0 行受到影响......)。

我什至尝试了正则表达式,但这会引发错误,所以显然语法一定是错误的:

UPDATE contracts SET year = REPLACE(year, '.+/\', '20')

如有任何帮助,我们将不胜感激。

最佳答案

MySQL 不支持使用 replace() 的正则表达式。根据您的示例数据,您可以执行以下操作:

UPDATE contracts
    SET year = CONCAT('20', SUBSTRING_INDEX(year, '/', -1))

关于MySQL – 替换部分以 '/' 结尾的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50194318/

相关文章:

使用 order by 子句的 mysql 查询

php - 使用点击功能显示 Blade 模型的数据

mysql - SQL:SELECT,其中不同表中的 2 列相同

MySql 子字符串索引,查找和替换字符

PHP 正则表达式将两个斜杠 (//) 替换为新行

mysql - PHP在sql查询中的Explode方法

PHP: fatal error :在非对象上调用成员函数 query()

mysql - 如何使用 IF() 条件在 MySQL 中显示 true 和 false 行

sql - sql server如何使用管道字符进行排序

Python在二进制文件中搜索和替换