在用户的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/

10-13 02:46