从SQL中的字符串开头删除字符

时间:2016-09-08 02:41:06

标签: mysql sql string

我正在运行一个过去需要在成员用户名中加前缀的游戏社区。一个例子是" RDxBuffalo"。我们最近决定摆脱前缀/标签,现在我希望将其从每个人的名字中删除。我假设这样做的最好方法是通过SQL查询,我一直在找到最好的方法来解决问题。

这就是我要查询的内容:

  1. 检查数据库中的所有用户名是否包含" RDx" (名称/字符串的开头部分可能会或可能不会大写)。

  2. 删除" RDx"从用户名的开头。

  3. 感谢任何帮助,对查询的解释将是惊人的。

3 个答案:

答案 0 :(得分:3)

the MySQL documentation,您要查找的函数是SUBSTR(),修改表的操作是UPDATE。您可以使用SUBSTR()子句中的WHERE函数查找符合条件的行:

UPDATE your_members_table 
SET member_name = SUBSTR(member_name, 4) --drops first 3 characters
WHERE SUBSTR(member_name, 1, 3) = "RDx"
祝你好运!

修改:为不区分大小写添加UPPER()LOWER()

WHERE UPPER(SUBSTR(member_name, 1, 3)) = "RDX"

答案 1 :(得分:1)

使用left() function检查where子句中的前3个chacarcters,并使用lower()函数将它们转换为小写,使用set中的substring() function从第4个字符返回字符串的子句:

update yourtable set username=substring(username,4) where lower(left(username,3))='rdx'

将上述语句转换为选择以查看其工作原理。

答案 2 :(得分:1)

您可以使用更新查询来执行此操作。

查询的where部分如下

    where lower(name) like 'rdx%' 

更新部分可以使用子字符串函数,例如mid()。

     MID(column_name,start)