在mysql中剪切文本

时间:2013-05-15 09:08:18

标签: mysql sql

我有桌子:

Names
id | name    | text
1  | Mr Paul | aaaa
2  | Mr Marc | bbb
3  | Mr John | ccc

如何使用SQL删除前缀“ Mr ”?

4 个答案:

答案 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;