2016-09-08 14 views
0

メンバーのユーザー名に接頭辞を付ける必要があったゲームコミュニティを実行しています。たとえば、 "RDxBuffalo"があります。私たちは最近、接頭辞/タグを取り除くことに決めました。そして今、私は誰の名前からもそれを削除しようとしています。私はこれを行う最善の方法はSQLクエリを経由すると仮定して、私はそれを行うための最善の方法を見つける問題があった。SQLの文字列の先頭から文字を削除します

これは私が行うには、クエリを探していますものです:「RDX」を持っているすべてのための

  1. チェックし、データベース内のすべてのユーザー名を(一部はしてもしなくてもよい大文字の場合もある)の名前の先頭に/文字列。

  2. ユーザー名の先頭から「RDx」を削除します。

何か助けていただきありがとうございます。質問の説明は素晴らしいと思います。

答えて

2

、あなたが探している機能は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" 
+1

これは本当です。共有のためのThx。それはいいですね。 – Drew

1

left() functionを使用してwhere句の最初の3 chacarctersをチェックして、下()関数を小文字に変換し、第四文字から文字列を返すようにset句でsubstring() functionを使用します。

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

上記のステートメントをselectに変換して、その動作を確認します。

1

更新クエリを使用して実行できます。

where lower(name) like 'rdx%' 

あなたは、このようなミッド()などの部分文字列関数を使用することができ、更新部分を次のようにクエリの一部がなるザ・。 the MySQL documentationパー

 MID(column_name,start) 
関連する問題