把它变成一个cron工作?

时间:2015-06-01 09:42:04

标签: php magento cron

找到这段可爱的sql查询代码,以排除magento上的多个图像。

UPDATE catalog_product_entity_media_gallery_value SET disabled = 0; 
UPDATE catalog_product_entity_media_gallery_value AS mgv,
(SELECT entity_id, COUNT(*) as image_count, MAX(value_id) AS value_id
FROM catalog_product_entity_media_gallery AS mg
GROUP BY entity_id
HAVING image_count = 2) AS mg
SET mgv.disabled = 1
WHERE mgv.value_id = mg.value_id 

我希望将此运行作为cron作业,而不是直接使用数据库,但不知道如何将其作为一个编写。

这可以成为一个cron工作吗?

请指出正确的方向。

1 个答案:

答案 0 :(得分:0)

使用大多数数据库附带的命令行工具,您可以使用mysql将这些语句包装在脚本中,如下所示

/path/to/mysql --whateverparametersyouneed yourdb << HERE
  UPDATE catalog_product_entity_media_gallery_value SET disabled = 0; 
   UPDATE catalog_product_entity_media_gallery_value AS mgv,
  (SELECT entity_id, COUNT(*) as image_count, MAX(value_id) AS value_id
  FROM catalog_product_entity_media_gallery AS mg
  GROUP BY entity_id
  HAVING image_count = 2) AS mg
  SET mgv.disabled = 1
  WHERE mgv.value_id = mg.value_id; 
HERE

这称为here-document,有关详细信息,请参阅How can I write a here doc to a file in Bash script?

然后,只需从cron调用该脚本。