mysql–替换以“/”结尾的部分字符串

6tqwzwtp  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(402)

我对sql几乎没有经验。我被一个看似简单的任务困住了——我把一行合同号复制到一个新的“年”行中,其中包括一个两位数的年份号(例如1/14、31/15、221/17)。
现在我需要用'20'字符串替换正斜杠和斜杠本身留下的数字,以获得相当完整的年份(例如2014、2015、2017)。行是varchar。
我试着这样:

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

或者这个:

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

未引发错误,但未更新任何内容(0行受影响…)。
我甚至尝试了regexp,但这会引发错误,所以很明显语法肯定是错误的:

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

任何帮助都将不胜感激。

ct2axkht

ct2axkht1#

mysql不支持带有 replace() . 根据您的示例数据,您可以执行以下操作:

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

相关问题