我想将“Shri_”添加到客户表的 First_name 中,仅适用于开头没有“Mr_”的姓名。 customer表数据如下:
我正在使用下面的脚本,但没有用。
update customers set first_name = REGEXP_REPLACE(first_name,'^(?!Mr_)(.*)', 'Shri_\2',1,1);
谁能指出我的正则表达式有什么问题。更具体地说,我正在尝试为这种情况找出正确的正则表达式。
最佳答案
正则表达式非常复杂;您可以通过以下方式更简单地解决此问题:
UPDATE customers
SET first_name = 'Shri_' || first_name
WHERE first_name NOT LIKE 'Mr\_%' ESCAPE '\'
我怀疑问题是 _ 是一个通配符,但它可以像上面那样被转义,所以它不再意味着“任何单个字符”,而只是“下划线”
关于sql - .REGEXP_REPLACE 用于在列中添加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61265656/