我正在尝试删除数据库中每个名称的name_
部分,name_
被错误地插入到db中,现在在30个对象名中。如果我从db删除manuelly,它需要我很多时间。
一个例子是:name_john
。它应该是john
。
如何使用某些sql语句从db中所有对象的所有名称中删除此name_
?
答案 0 :(得分:3)
如果是列值,则可以使用更新语句来执行此操作。
UPDATE table_reference
SET column_reference = SUBSTRING(column_reference, 6)
WHERE column_reference LIKE 'name\_%' ESCAPE '\'
答案 1 :(得分:1)
如果这是您需要修改的列值,您可以使用REPLACE()
函数,如下所示:
UPDATE tablename
SET columnname = REPLACE(columnname, 'name_', '')
WHERE columnname LIKE '%name\_%' ESCAPE '\'
;
这会删除name_
中columnname
的所有条目。如果只有一个条目(或者只需要删除一个条目)并且其位置是固定的,则可以使用INSERT()
函数,尽管它的名称可以替换和删除子字符串。如果name_
的位置为例如,您就可以使用它在开始时:
UPDATE tablename
SET columnname = INSERT(columnname, 1, 5, '')
WHERE columnname LIKE 'name\_%' ESCAPE '\'
;