我有下表:项目
+----+------+-------+---------+
| id | type | color | texture |
+----+------+-------+---------+
| 1 | card | red | rough |
| 2 | | red | smooth |
| 3 | | red | rough |
| 4 | | green | rough |
+----+------+-------+---------+
我想更新表中的行,以便如果至少有一行的类型不为 NULL,并且其他行在其他属性、颜色和纹理上也匹配,它将将该值添加到另一行行。因此,在此示例中,它只会将“type”添加到行 id:3
最佳答案
您可以使用多表UPDATE
语句来执行此操作:
http://dev.mysql.com/doc/refman/5.0/en/update.html
UPDATE items i1
JOIN items i2
ON i1.color = i2.color
AND i1.texture = i2.texture
AND i2.type IS NOT NULL
SET i1.type = i2.type
WHERE i1.type IS NULL
关于mysql - 根据同一表中的其他行更新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8882974/