根据另一列中的数据更新MySQL表行

时间:2015-04-03 13:23:05

标签: mysql magento sql-update

我有一个看起来像这样的Magento表:

value_id  entity_type_id  attribute_id   entity_id   value
189       2               19               20        MR 
190       2               20               20        Bob
191       2               21               20         
192       2               22               20        Steel 
193       2               23               20         
194       2               24               20         
195       2               26               20        London
196       2               27               20         
197       2               28               20         
198       2               30               20        E84 6DD 
199       2               31               20         
200       2               32               20        01600786546
201       2               36               20         
202       2               19               21         
203       2               20               21        Alice 
204       2               21               21         
205       2               22               21        Smith
206       2               23               21         
207       2               24               21         
208       2               26               21        Manchester
209       2               27               21         
210       2               28               21         
211       2               30               21        M4 56T 
212       2               31               21         
213       2               32               21        01278 865214 

我需要做的是将电话号码向上移动一行 - 所以当attribute_id等于32时,我需要将该行的值字段移动到attribute_id等于31的值字段中。 p>

我想我需要设置一些变量,但我不知道从哪里开始。任何指导都将非常感谢!

1 个答案:

答案 0 :(得分:1)

通过替换your_table的名称来调整此查询:

UPDATE your_table t1
INNER JOIN your_table t2
SET t1.value = t2.value
WHERE t1.attribute_id = 31
AND t2.attribute_id = 32
AND t1.entity_id = t2.entity_id
AND t1.entity_type_id = t2.entity_type_id;