簡體   English   中英

MYSQL更新(如果存在或插入)

[英]MYSQL update if exists or insert

我一直在嘗試使以下SQL工作,但是似乎跳過了插入功能。 從本質上講,更新應該在大多數時候被優先處理。

UPDATE `teams-tasks`
        SET status=(:s), name=(:n), description=(:d), importance=(:i), applies=(:a) 
        WHERE teamId =(:t) AND date=(:da) AND playerId =(:p) AND creatorId =(:c);
        IF (SELECT ROW_COUNT() = 0);                    
        INSERT INTO `teams-tasks`
            ( status, date, creatorId, teamId, playerId, name, description, importance, applies ) 
        VALUES 
            ( (:s), (:da), (:c), (:t), (:p), (:n), (:d), (:i), (:a) ))

我究竟做錯了什么? 如果有問題,我正在使用php pdo進行數據庫連接

謝謝

用戶替換為查詢,以確保該行是否存在將更新數據,如果該行不存在則將插入日期。

檢查重復的條目,它在內部比較主鍵

例如

REPLACE INTO table_name(column_name1,column_name2,…)
VALUES(value1,value2,…)

例如

REPLACE INTO offices(officecode,city)
VALUES(8,'San Jose')

謝謝阿米特

您應該使用INSERT ... ON DUPLICATE KEY UPDATE

例如

INSERT INTO AggregatedData (datenum,Timestamp)
VALUES ("734152.979166667","2010-01-14 23:30:00.000")
ON DUPLICATE KEY UPDATE 
  Timestamp=VALUES(Timestamp)

暫無
暫無

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

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