繁体   English   中英

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

[英]Remove characters from beginning of a string in SQL

我正在运行一个游戏社区,该社区过去曾经要求在成员用户名中添加前缀。 例如“ RDxBuffalo”。 我们最近决定删除前缀/标记,现在我希望将其从每个人的名字中删除。 我假设最好的方法是通过SQL查询,而我一直在寻找最好的方法来解决这个问题。

这是我正在寻找要执行的查询:

  1. 在数据库中的所有用户名中,检查名称/字符串开头是否有“ RDx”(可能大写或不大写)的所有用户名。

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

感谢您的任何帮助,并且对该查询的解释将是惊人的。

根据MySQL文档 ,您要查找的函数是SUBSTR() ,而修改表的操作是UPDATE 您可以在WHERE子句中使用SUBSTR()函数来查找符合条件的行:

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"

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

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

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

您可以使用更新查询来完成。

查询的where部分如下

    where lower(name) like 'rdx%' 

您可以使用诸如mid()之类的子字符串函数来更新部分。

     MID(column_name,start) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM