gpt4 book ai didi

mysql - 避免特定 MySQL 列中的重复记录

转载 作者:行者123 更新时间:2023-11-29 17:45:15 25 4
gpt4 key购买 nike

我有一个拍卖系统,多个用户可以出价,但是当出价与bidding_price中的值相同的值输入到数据库中的同时发生时,我遇到了问题。列,例如:

0.02
0.02
0.02

我已经安装了一个选择,该选择返回给定拍卖的所有具有相同值(口是心非)的出价:

SELECT bidding_price, count(*)
FROM bid_account
WHERE auction_id = 1335
GROUP BY bidding_price
Having Count(*) > 1

在这种情况下,他将退回 ID 为 1335 的拍卖品。

bid_account的结构表格如下所示:

id | int(255) - index - primary - AUTO INCREMENT
auction_id | int(11) - id of auction
bidding_price | float(20,2) - bid amount, eg. 0.02

我什至创建了一个可以删除重复项的 DELETE,但是由于系统错误而删除出价对某些用户来说是不公平的。关注:

DELETE ba
FROM bid_account ba JOIN
(SELECT ba2.auction_id, ba2.bidding_price, MAX(ba2.id) as max_id
FROM bid_account ba2
WHERE ba2.auction_id = ?
GROUP BY ba2.auction_id, ba2.bidding_price
) ba2
ON ba2.auction_id = ba.auction_id AND
ba2.bidding_price = ba.bidding_price AND
ba2.max_id > ba.id
WHERE ba.auction_id = ?;

那里带有“? ”,因为它通过参数接收值。

有谁知道如何解决这个问题,避免 bidding_price 中的相同值表,但对于由 auction_id 标识的给定拍卖列?

表中bidding_price中有几个相等的值,但不可能出现同一次拍卖的相同值,即 auction_id 中的相同值。 .

我想到创建一个更新,它预先检查是否存在重复项,如果存在,它会通过在每个重复项中多插入 1 美分来更新值。但我认为当同时有 3 个出价时问题就会消失。

此 SQL 命令将在节点上运行,并且每秒都会在 cron 中运行,即每次执行此检查时。如果现在存在重复出价,下一秒它将识别并修复。

出价系统与 15 秒倒计时器配合使用,当有人出价时,计时器将返回到 15 秒的初始计数。

最佳答案

如果您正在使用数据库,您可以尝试使用唯一的 bid_amount

CREATE TABLE bidding system (
bid_amount int NOT NULL UNIQUE,
LastName varchar(15) NOT NULL,
FirstName varchar(15)
);

关于mysql - 避免特定 MySQL 列中的重复记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49846552/

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