我有下表:项目
+----+------+-------+---------+
| id | type | color | texture |
+----+------+-------+---------+
| 1 | card | red | rough |
| 2 | | red | smooth |
| 3 | | red | rough |
| 4 | | green | rough |
+----+------+-------+---------+
我想更新表中的行,以便如果至少有一行的类型为非NULL而其他行也匹配其他属性,颜色和纹理,则会将值添加到另一行行。所以在这个例子中它只会添加' type'行id:3
答案 0 :(得分:5)
您可以使用多表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