在用户的MySQL数据库中,有3个字段分配给他:
用户身份
meta_key
meta_value
user_id = '297'
meta_key = 'qty'
meta_value = '1'
问题在于,当该用户购买另一种产品时,错误地添加了另外3个字段:
user_id = '297'
meta_key = 'qty'
meta_value = '1'
而不只是将增量值更新为“ 2”。
因此,我的数据库中填充了3或4个重复项,每个重复项的qty值为1,而不是一个字段包含所有qty的总和。
此后,我已经修复了导致此问题的错误,但是现在我也需要修复数据库。
结构图:http://i.imgur.com/41Qk07f.png
我想知道是否存在将所有重复的“ qty”值总和为一个的查询。
最佳答案
这样做:
UPDATE theTable t
JOIN (SELECT user_id, meta_key, SUM(meta_value) meta_value_sum
FROM theTable
GROUP BY user_id, meta_key) t1
ON t.user_id = t1.user_id AND t.meta_key = t1.meta_key
SET t1.meta_value = meta_value_sum
然后使用以下命令删除所有重复的记录:
ALTER TABLE IGNORE theTable ADD UNIQUE INDEX (user_id, meta_key)
关于mysql - 将多个条目的值加到一个字段中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19388893/