我有桌子:
Names
id | name | text
1 | Mr Paul | aaaa
2 | Mr Marc | bbb
3 | Mr John | ccc
如何使用SQL删除前缀“ Mr ”?
答案 0 :(得分:4)
您可以使用REPLACE()
功能。
SELECT REPLACE(name, 'Mr ', '' ) FROM Names;
为了更新表格,请执行以下操作:
UPDATE Names set name = REPLACE(name, 'Mr ', '' );
对优化此任务的评论很少:如other answer中所述,您可以使用SUBSTRING
函数实现此功能 - 如果您知道每个行,这种方法可能会更快以Mr
开头 - 数据库引擎不必查找Mr
字符串(这需要花费一些时间),而是任意剪切前4个字母。
组合解决方案(仅在开头时匹配Mr
,但使用更快SUBSTRING
代替REPLACE
):
UPDATE Names SET name = SUBSTRING(name FROM 4) WHERE name LIKE 'Mr %';
答案 1 :(得分:1)
您可以使用REPLACE
,但请注意,它会在字段中找到实例,而不仅仅是在开头。
e.g。
select replace(x.Name, 'Mr ', '')
from
(select 'Mr Smith' as name
union select 'Mr Jones') as x;
答案 2 :(得分:1)
这是你的答案,
MySQL REPLACE函数执行任务
UPDATE table
SET name = REPLACE(name, 'Mr ', '')
WHERE name LIKE 'Mr %'
它会更新以Mr
后缀
答案 3 :(得分:0)
SELECT SUBSTRING(name FROM 4) AS newname;