2011-09-29 24 views
2

我想更新並插入到(在1個查詢中)我的表。我有1個新的行和2箇舊的記錄。 我使用此查詢(topic):在INSERT查詢中傳遞列

INSERT INTO table (id, title, url) VALUES (1, "test", "http://"), (2, [it is an old record. I don't want to change its title], "https://"), (3, "helloworld", "mms://") ON DUPLICATE KEY UPDATE title = VALUES(title), url = VALUES(url) 

我不想改變第二個記錄(id = 2title列,但如果我把NULLDEFAULTtitle逗號後,title將變爲NULL(如果我在逗號後面什麼也不加,會出現錯誤)

我該怎麼辦?我應該使用2個或更多的查詢嗎?

謝謝。

回答

0

您可以使用類似:

INSERT INTO table (id, title, url) VALUES (1, "test", "http://"), (2, "", "https://"), (3, "helloworld", "mms://") ON DUPLICATE KEY UPDATE title = IF(VALUES(title)="",title,VALUES(title)), url = VALUES(url) 
0

不是100%清楚你的目標,但你可以不嵌套一個選擇,將拉回舊標題代替方括號中的文本?