我本来希望在MySQL的ON DUPLICATE KEY UPDATE语句中使用WHERE语句,但是我知道你不能这样做。我希望我的陈述是这样的......
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 :(得分:0)
您可以在WHERE
子句中使用ON DUPLICATE KEY UPDATE
和子查询。尝试使用SELECT
的正确语法。我认为这是错误的:
SELECT COUNT(users.table2) WHERE name=%s
table2是一张桌子吗?在那种情况下,有一些完全错误的东西。如果它是一个字段,请试试这个:
SELECT COUNT(table2) FROM users WHERE name=%s