簡體   English   中英

php mysql insert with where子句選擇多個

[英]php mysql insert select multiple with where clause

我有一個以下

Table1 : userid, who, share, date  :: id is auto increment and primary key

我想構建一個查詢來檢查記錄是否存在,如果為空則插入新記錄。 如何在單個查詢中構建它並使用單個查詢插入多個記錄

data to inser ('a1','a2','a3','a4'), ('b1','b2','b3','b4'), ('c1','c2','c3','c4'), .......
  1. 在要成為唯一的列上創建UNIQUE索引
  2. 使用INSERT IGNORE插入唯一數據並忽略不唯一

您可以使用REPLACE statemement,它就像INSERT一樣,只有在行已經存在的情況下才會執行任何操作:

REPLACE INTO table ...

http://dev.mysql.com/doc/refman/5.0/en/replace.html

你應該仔細看看mysql INSERT INTO文檔

如何插入“on no exists”很簡單。 假設您希望user,who,share組合是唯一的並使用最新日期。 更新您的表並在這些字段上創建UNIQUE KEY

ALTER TABLE Table1 ADD UNIQUE KEY (user, who, share);

通常插入相同的組合會導致錯誤,但使用INSERT IGNORE (上面的鏈接)會默默地忽略錯誤:

INSERT IGNORE INTO Table1 (user,who,share,date) VALUES ( 1, 2, 3, NOW());

您還可以強制鍵在插入時更新

INSERT IGNORE INTO Table1 (user,who,share,date) VALUES ( 1, 2, 3, NOW())
       ON DUPLICATE KEY UPDATE date = VALUES(date);

並一次插入多個值,第一個鏈接:

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

暫無
暫無

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

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