2

それで、usersフィールド名countryとフィールド名を持つテーブル名を取得しましたid

Playersフィールド名を持つテーブル名も取得しましたgameID (またuser_id、ユーザーIDのfor idも取得しましたusers

テーブルからのUPDATEフィールドでその変更を行いたいのですが、テーブルからgameIDPlayersSTEAMID_0xxxxSTEAMID_1xxxxxcountryusers is = uk

私はこのようなことを試しています:

UPDATE Players 
set steamid=steam_1 
WHERE steamid=steamid_0 AND country = ( SELECT country 
                                        from users 
                                        where country=pt )

だから私の最初の疑問、単語の一部だけを変更する方法 (例: steam_0:1:2345 to steam_1:1:2345) それはSteam_0* ?また、どのように国を選択するのですか? 私の理論はばかげているように見えます :|

私はそれが間違っていることを知っています、多分あなたは私を正しい方向に向けることができます

前もって感謝します

4

1 に答える 1

1

あなたは国を取得するためにJOIN反対する必要がありusersます:

と交換steam_0するには、文字列関数steam_1を使用できます。REPLACE()

UPDATE 
  Players
  JOIN users ON Players.user_id = users.id
SET
  /* REPLACE() the beginnging steamid_0 with steamid_1 */
  steamid = REPLACE(steamid, 'steamid_0:', 'steamid_1:')
WHERE
  /* The whole subquery can then be replaced with this: */
  users.country = 'pt'
  /* Not strictly necessary... */
  AND LEFT(steamid, 10) = 'steamid_0:'
于 2013-01-04T03:53:40.293 に答える