可能重複:
How do I update if exists, insert if not (aka upsert or merge) in MySQL?插入到mysql數據庫,如果記錄已經存在,則更新
如何插入MySQL數據庫,如果記錄已經存在,則更新...我知道本頁有解決方案: http://dev.mysql.com/doc/refman/5.1/en/insert-on-duplicate.html
sib_table
+=======================================================+
| sib_id | std_id | sib_name | sib_sex | sib_age |
+=======================================================+
| 1 | 77 | Sajjad | m | 5/17/1990 |
| 1 | 77 | Farah | f | 9/14/1980 |
| 1 | 77 | Bilal | m | 1/10/1995 |
+=======================================================+
如果我想爲此表添加花葯兄弟會是什麼樣的SQL。行的情況下
INSERT INTO sib_table
(std_id,sib_name,sib_sex,sib_age)
VALUES ('77','Sajjad','m','1/5/2010')
ON DUPLICATE KEY
UPDATE id = LAST_INSERT_ID(id), c = 3;
INSERT INTO sib_table
(std_id,sib_name,sib_sex,sib_age)
VALUES
('77','Aamna','f','1/27/2005')
ON DUPLICATE KEY
UPDATE id = LAST_INSERT_ID(id), c = 3;
..非常感謝你讓我理解這個查詢..但是這是怎麼回事查詢知道...它的'唯一的名稱,我們不需要重複... ...我想,如果我們更新「名稱和性別」,那麼重複將與年齡綁定...正確...? ?? 其實sib_id是.. 1,2,3 ...但是寫錯了(1,1,1) – MFarooqi 2011-05-10 15:44:30
這個方法只是增加了......沒有更新 – MFarooqi 2011-05-10 16:27:18
如果你做'ALTER TABLE sib_table ADD UNIQUE KEY(std_id,sib_name)''那麼你不能添加第二個兄弟同一個std_id下的同名。然後我提供的SQL將正確更新。 – staticsan 2011-05-11 01:15:20