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)
和分组