簡體   English   中英

插入行或更新(如果存在)(如果存在多個條件)

[英]Insert row or update if exists (multiple conditions if exists)

我一行包含3個字段:
日薪人
1 3 1
1 7 2
1 4 3
2 6 1
2 9 2

這個想法是每個人每天都賺錢,現在我想要的是更新一個人一天的收入,但是如果那個人沒有任何收入(那個人/天的行不存在),那么插入行


日薪人
1 3 1

在這種情況下,它將更新該行並增加1收入:
日薪人
1 4 1

如果原始行不存在(因此人員和日期不存在),則插入新行,例如:
日薪人
1 1 1

我知道存在命令INSERT ON DUPLICATE KEY UPDATE

但這僅適用於1個唯一索引列(根據我的閱讀),我需要它與day和person一起使用(2列)。

我希望我能正確解釋,有人可以提供幫助。 我知道可以從PHP進行此操作,但要避免多次查詢(這很重要),我想知道是否有可能在1個查詢中進行查詢。

如果我僅考慮日期列(唯一),可以在我的情況下對其進行更改,那么這是可行的?

INSERT INTO table (day, earnings, person)
VALUES ('1',earnings,1)
ON DUPLICATE KEY UPDATE
earnings = VALUES(earnings+1)

您可以通過在日期和人員上添加復合唯一鍵來使其工作。

ALTER TABLE `myTable` ADD UNIQUE (`day`,`person`);

接着

INSERT INTO `myTable` (day, earnings, person)
VALUES ('1',$earnings,1)
ON DUPLICATE KEY UPDATE
earnings = earnings + $earnings

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM