Magento store priselistを更新するプロジェクトがあります。更新したい項目のリストがあり、それを 1 つの MySQL クエリで実行したいと考えています (より効率的であると考えて)。価格リストには、SKUと価格が含まれます。
私はこの2つのテーブルを持っています。テーブル 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 |
では、1 つのクエリで 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
私のプロジェクトでは、MySql.Data.MySqlClient を使用して、.Net および MySQL 5.x で C# を使用しています。共有してください. :)