2012-02-10 72 views
0

我有一个下面PHP的MySQL插入选择多用where子句

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'), ....... 
+0

是否有任何唯一键?如果有冲突的记录会发生什么?它应该被忽略吗?有一个像这样的插入的构造: 'insert ignore into

values(),(),();' – 2012-02-10 13:22:51

回答

0

你应该仔细看看mysql INSERT INTO documentation

如何插入“不存在”很简单。假设您希望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()); 
上插入

您可能还force key to update

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);