如何一次编辑无限数量的mysql行?

时间:2019-10-30 14:43:04

标签: javascript mysql discord.js

我正在创建一个报价系统,该系统实质上将允许某人接受报价,所有报价都存储在数据库中。

当某人接受报价#1时,我希望报价#2,#3,#4和#5(不确定的数量,或多或少)可以在数据库中自动更新。我的问题是报价没有固定的数目,因此我需要一些如何搜索该佣金的唯一ID并将其全部更改的方法。这是我迷路的地方。

1 个答案:

答案 0 :(得分:0)

基本工作流程的小示例。

1)客户运行佣金。该佣金将作为佣金X插入数据库。您应在该佣金行中提供一个字段,以添加引号的ID引用。

INSERT INTO COMMISSIONS ( date, request, quotes ) OUTPUT INSERTED.id VALUES ( 2019-xx-xx, 'make a logo', '[]' ); 这会给您佣金ID X。

2)然后,客户向自由职业者发出报价请求,其中提到X是他们应响应的佣金。自由职业者回答佣金X的报价。

3)您将新报价插入数据库。 INSERT为您提供唯一的IDY。然后在数据库中搜索佣金X,并将Y添加到其引号字段中。

INSERT INTO QUOTES ( date, quote, state ) OUTPUT INSERTED.id VALUES ( 2019-xx-xx, 'someBase64Image', 'pending' );这为您提供了报价ID Y

UPDATE COMMISSIONS SET quote = quote + 'Y' WHERE id = X;

X是给定的,因为自由职业者响应了一定的佣金要求。 引号字段根据其数据类型需要一些解析规则。

4)客户在报价之间进行选择,并告诉您他们选择了哪一个。

5)您在数据库中搜索在其引号字段中包含ID Y的佣金。现在,您可以从“佣金报价”字段中获得该佣金所有报价的ID,并且可以搜索+拒绝那些不是Y的ID。

UPDATE QUOTES SET state = 'accepted' WHERE id = Y;

SELECT * FROM COMMISSIONS WHERE [quotes] LIKE '%Y%'; 从佣金中提取所有报价ID。 遍历所有这些ID。

UPDATE QUOTES SET state = 'rejected' WHERE id = id_from_quotes_field_commission_X

x)您可以通过使引号包含一个佣金编号字段来完全颠倒这种逻辑,以便您可以搜索WHERE commission_id = X

更新:

由于MySQL似乎没有等效的OUTPUT,因此可以在插入后使用LAST_INSERT_ID()添加选择查询。 https://dev.mysql.com/doc/refman/8.0/en/getting-unique-id.html