更新或插入不同的条件

时间:2017-09-04 10:06:34

标签: php mysql mysqli

我有这些数据:

user_id            id_game           level                score
10                 1                  1                   200
10                 1                  1                   400
10                 1                  2                   500
10                 2                  1                   230
11                 1                  1                   345

这个数据我想迁移到一个新表,想法是如果已经插入了level,id_game和user_id,我会查看最高分数。所以对于这个例子,我想保存:

user_id           id_game             level               score
10                 1                   1                  400
10                 1                   2                  500
10                 2                   1                  230
11                 1                   1                  345

我想在单个sql中做,我尝试过这样的想法:

INSERT INTO %s (user_id, id_game, level, score)
                      VALUES (%d, %d, %d, %d) ON DUPLICATE KEY UPDATE user_id = %d, id_game = %d, score = %d.

但不行。你能帮帮我吗?

2 个答案:

答案 0 :(得分:1)

SELECT user_id 
     , id_game
     , level
     , MAX(score) score
  FROM this_data
 GROUP
    BY user_id
     , id_game
     , level;

答案 1 :(得分:0)

这是一个简单的查询。

CREATE TABLE <TARGET_TABLE_NAME> SELECT USER_ID,ID_GAME,LEVEL,MAX(SCORE) FROM <SOURCE_TABLE_NAME> GROUP by 1,2,3;