SQL Update - 更改字符串

时间:2011-06-15 15:10:40

标签: mysql sql

我有这样的表:

Users(id,name)

我需要查询以'asdf_'查找名称的开头,并通过删除此前缀来更新所有行。

例如:

在查询之前,该表包含:

asdf_john
asdf_jane

我想要查询之后:

john
jane

感谢您的帮助

4 个答案:

答案 0 :(得分:6)

您可以使用的sql函数是子字符串:SUBSTR(例如:http://www.1keydata.com/sql/sql-substring.html

对于你的桌子USERS:

UPDATE USERS SET NAME = SUBSTRING (NAME, 6) WHERE NAME LIKE 'asdf_%';

答案 1 :(得分:1)

Update Users
set name = trim(leading 'asdf_' from name)
where name like 'asdf_%'

答案 2 :(得分:0)

UPDATE `Users` SET `name` = replace(`name`, 'asdf_', '') WHERE `name` LIKE 'asdf\_%' ESCAPE '\';

根据@ UltraCommit的答案添加了WHERE子句,因此当它在开头找到字符串时会替换它。

或者基于@ McPepper的回答:

UPDATE `Users` SET `name` = SUBSTRING(`name`, 6) WHERE `name` LIKE 'asdf\_%' ESCAPE '\';

如果只想在字符串开头时替换。将数字6替换为要替换的字符串+ 1的字符数。 在这种情况下,您的字符串asdf_5个字符,+1变为6。这是DB将开始保持字符串的字符位置。

答案 3 :(得分:0)

这应该只能从以“asdf _”开头的所有名称中删除起始“asdf_”

UPDATE `Users` 
SET `name` = SUBSTRING(`name`, 6) 
WHERE `name` REGEXP '^asdf_';