2013-04-23 85 views
0

我希望在MySQL的ON DUPLICATE KEY UPDATE語句中使用WHERE語句,但我明白你不能這樣做。我希望我的發言是這樣的..使用WHERE和COUNT條件執行DUPLICATE KEY UPDATE ...?

INSERT INTO table1(name, user, num_users) 
VALUES (%s, %s, %s) ON DUPLICATE KEY UPDATE 
num_users = SELECT COUNT(users.table2) WHERE name=%s) 
(name, user, 1, name))  

所以,如果有人知道如何在一個命令將是巨大的做到這一點。

感謝,

+0

你能描述一下你實際試圖解決的問題嗎?很難說出你期望的代碼,特別是當括號不匹配時。 – Dan 2013-04-23 18:49:55

+1

我非常懷疑你可能需要的語法,但你可以使用觸發器來完成它。 – 2013-04-23 18:54:43

+1

請看看這裏:http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html和這裏:http://stackoverflow.com/questions/2714587/mysql-on -duplicate鍵更新換多行 - 插入式單查詢 – jcho360 2013-04-23 19:34:10

回答

0

您可以使用WHERE,和子查詢中,ON DUPLICATE KEY UPDATE子句。嘗試使用SELECT的正確語法。我認爲這是錯誤的:

SELECT COUNT(users.table2) WHERE name=%s 

是table2表嗎?在那種情況下,有一些完全錯誤的東西。如果是一個領域,試試這個:

SELECT COUNT(table2) FROM users WHERE name=%s 
相關問題