我正在运行一个过去需要在成员用户名中加前缀的游戏社区。一个例子是" RDxBuffalo"。我们最近决定摆脱前缀/标签,现在我希望将其从每个人的名字中删除。我假设这样做的最好方法是通过SQL查询,我一直在找到最好的方法来解决问题。
这就是我要查询的内容:
检查数据库中的所有用户名是否包含" RDx" (名称/字符串的开头部分可能会或可能不会大写)。
删除" RDx"从用户名的开头。
感谢任何帮助,对查询的解释将是惊人的。
答案 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)