【问题标题】:How to Set a Field within the results set of this SELECT statement?如何在此 SELECT 语句的结果集中设置字段?
【发布时间】:2020-05-26 10:34:46
【问题描述】:

所以我有一个 SQL 查询,我在 Magento 2 数据库上运行。它成功列出了“状态”为“已禁用”(2) 且库存数量大于 0 的所有项目。

select
  `eav_attribute`.`attribute_id` AS `attribute_id`,
  `catalog_product_entity_int`.`entity_id` AS `entity_id`,
  `catalog_product_entity_int`.`value` AS `value`,
  `eav_attribute`.`attribute_code` AS `attribute_code`,
  `catalog_product_entity`.`sku` AS `sku`,
  `catalog_product_entity`.`type_id` AS `type_id`,
  `cataloginventory_stock_item`.`qty` AS `qty`

from
  (((`eav_attribute`
  join `catalog_product_entity_int` on ((`eav_attribute`.`attribute_id` = `catalog_product_entity_int`.`attribute_id`)))
  join `catalog_product_entity` on ((`catalog_product_entity_int`.`entity_id` = `catalog_product_entity`.`entity_id`)))
  join `cataloginventory_stock_item` on ((`catalog_product_entity_int`.`entity_id` = `cataloginventory_stock_item`.`product_id`)))


where
  ((`eav_attribute`.`attribute_code` = 'status') and
  (`catalog_product_entity_int`.`value` = 2)) and
  (`cataloginventory_stock_item`.`qty` > 0 )

它适用于选择结果集,并为我提供符合这两个标准的准确项目列表。我将如何修改它以将此结果集中的项目的“状态”设置为“已启用”(1)。所以基本上,我只需要运行这些标准,然后对于每个结果,将列 catalog_product_entity_int.value 设置为 1 而不是 2。

【问题讨论】:

    标签: mysql sql magento select magento2


    【解决方案1】:

    你可以使用update:

    update eav_attribute ea join
           catalog_product_entity_int cpei
           on ea.attribute_id = cpei.attribute_id join
           catalog_product_entity cpe
           on cpei.entity_id = cpe.entity_id join
           cataloginventory_stock_item cisi
           on cpei.entity_id = cisi.product_id
        set cpei.value = 2
        where ea.attribute_code = 'status' and
              cpei.value = 2 and
              ci.qty > 0 ;
    

    请注意,我添加了表别名并删除了括号和反引号——因此查询更易于编写和阅读。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-14
      • 1970-01-01
      • 1970-01-01
      • 2013-10-18
      • 1970-01-01
      • 2014-01-26
      • 2012-12-12
      • 1970-01-01
      相关资源
      最近更新 更多