Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 更新或插入不同的条件_Php_Mysql_Mysqli - Fatal编程技术网

Php 更新或插入不同的条件

Php 更新或插入不同的条件,php,mysql,mysqli,Php,Mysql,Mysqli,我有以下数据: user_id id_game level score 10 1 1 200 10 1 1 400 10 1 2

我有以下数据:

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\u game和user\u 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.
但不是工作。你能帮我吗?

这是一个简单的问题

SELECT user_id 
     , id_game
     , level
     , MAX(score) score
  FROM this_data
 GROUP
    BY user_id
     , id_game
     , level;
CREATE TABLE <TARGET_TABLE_NAME> SELECT USER_ID,ID_GAME,LEVEL,MAX(SCORE) FROM <SOURCE_TABLE_NAME> GROUP by 1,2,3;
CREATE TABLE按1,2,3从组中选择用户ID、游戏ID、级别、最大(分数);

但不工作意味着什么?任何错误?使用aggregate MAX()函数和GROUP BY进行查询可能会有所帮助;但是关键是基于什么?@MarkBaker如果指定用户的分数更高,id\u游戏,级别我们会更新分数,如果不存在指定用户,id\u游戏,级别我们会更新分数insert@Jens如果指定用户的分数更高,我们会更新分数,如果不存在指定用户,我们会更新分数,我们插入的级别这就是为什么您按用户id、游戏id、级别聚合
MAX(score)
分组