1
我有一个项目更新Magento商店priselist。我有我想要更新的项目列表,我想用一个MySQL查询(通过思考,它更有效)来完成。 priselist包括sku和价格。C#项目更新从两个表中选择行的MySQL列表
我有这两个表。从表1我使用SKU在表更新2的值,这是该项目的价格时* ENTITY_ID *两个表和attribute_id在等于是'64'。
表1
product_entity
entity_id | sku
1 | p1
2 | p2
3 | p3
表2
product_entity_decimal
entity_id | attribute_id | value |
1 | 64 | 5 |
1 | 65 | NULL |
1 | 66 | NULL |
2 | 64 | 7 |
2 | 65 | NULL |
2 | 66 | NULL |
3 | 64 | 1 |
3 | 65 | NULL |
3 | 66 | NULL |
所以,我怎么能与一个查询P1奖更新为6和P3奖金为2
我试试这个查询但它没有工作...
UPDATE product_entity, product_entity_decimal SET product_entity_decimal.value =
CASE
WHEN product_entity.entity_id = product_entity_decimal.entity_id AND product_entity_decimal.attribute_id = '64' AND product_entity.sku = 'p1' THEN '6'
WHEN product_entity.entity_id = product_entity_decimal.entity_id AND product_entity_decimal.attribute_id = '64' AND product_entity.sku = 'p1' THEN '2'
ELSE value
END
对于我的项目,我使用C#与.Net和MySQL 5.x通过使用MySql.Data.MySqlClient。也许有更好的方法来更新MySQL数据库中3000个项目的列表,如果有共享请。 :)
谢谢你有用,但我有一个问题。是不是需要更多的服务器端资源才能执行多个SQL查询?我的项目的目的是为了减轻主机方面的负担。我在“内存= 1 /计算”的基础上得到了其他想法。这意味着在导出数据时我会保留entity_id,然后它将在一个表中简单更新,但又是一个或多个查询,我仍然认为一个查询比许多查询更好。 – 2012-08-05 19:15:28