1
检测到 'X' 时添加到一个值我有两个表在MySQL
测试1:
id: 1
name: apple
count: 0
id: 2
name: pear
count: 0
测试2:
id: 1
liked: yes
itemid: 1
id: 2
liked: yes
itemid: 1
id: 3
liked: yes
itemid: 2
每次test2.itemid
比赛test1.id
我想补充1到test1.count
。在上述情况下,苹果将有2
我曾尝试下面的查询计数,
UPDATE test1
LEFT JOIN
test2
ON test2.`itemid` = test1.`id`
SET test1.`count` = test1.`count` + 1
WHERE test2.`liked` = 'yes';
和发生这种情况:
测试1:
id: 1
name: apple
count: 1
id: 2
name: pear
count: 1
正如你可以看到它没有正常工作。我猜测它只是在test1中为每一行运行一次。有任何想法吗?
这个伟大的工程,我个人更喜欢使用奥利的答案,由于简单。感谢内部加入提示也不知道:P –
没问题 - 我也很喜欢Olli的简单答案。如果你有一个非常大的数据集,那么考虑我的;机会会更快一些(在'test1'中每扫描一次'test2',而不是每次扫描一次),但是如果数据集相对较小,则无需为了可读性而交换速度。 –