gpt4 book ai didi

php - SQL : How to overwrite entry only if new one is higher? 否则创建新条目

转载 作者:太空宇宙 更新时间:2023-11-03 10:25:27 24 4
gpt4 key购买 nike

我有一个名为“highscore”的表,如下所示:
nameQL分数QL
彼得 50

并将带有 NAME 和 SCORE 的 flash 游戏导出到具有此名称的 PHP。

如何在 PHP 文件中实现:

  • 如果(NAME 存在于数据库中(nameQL)AND SCORE> this.name.scoreQL){Raplace scoreQL用 SCORE WHERE nameQL=NAME}
  • IF(名称不存在){创建带有 NAME 和 SCORE 的新行)

最佳答案

我会使用 insert .. on duplicate key update ... 语句。像这样:

insert into highscore set
name = :name,
score = :new_score
on duplicate key update
score = greatest(score, :new_score)

name 列应该被索引为unique

测试脚本:

create table player (
name varchar(32) primary key,
score int not null default 0
);

-- create new players
insert into player set name = 'foo', score = 100
on duplicate key update score = greatest(score, 100);
insert into player set name = 'bar', score = 100
on duplicate key update score = greatest(score, 100);
insert into player set name = 'baz', score = 100
on duplicate key update score = greatest(score, 100);

-- update score of existing player
insert into player set name = 'bar', score = 200
on duplicate key update score = greatest(score, 200);

select * from player 的输出:

+------+-------+
| name | score |
+------+-------+
| bar | 200 |
| baz | 100 |
| foo | 100 |
+------+-------+

关于php - SQL : How to overwrite entry only if new one is higher? 否则创建新条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6253382/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com