SQL语法问题

时间:2013-01-04 03:46:31

标签: mysql sql

因此,我得到一个表名users,其中包含字段名称country和字段名称id

我还有一个表名Players,其字段名称为gameIDuser_id上的用户ID为id users

我希望UPDATE gameIDPlayers STEAMID_0xxxx STEAMID_1xxxxx country users 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* ?来自表{{1}}

我尝试这样的事情:

{{1}}

所以我的第一个疑问是,如何更改单词的一部分(例如:{{1}})它也是{{1}},我该如何选择国家/地区?我的理论看起来很愚蠢:|

我知道这是错的,也许你可以指出我正确的方向

提前谢谢

1 个答案:

答案 0 :(得分: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:'