在MYSQL中识别变量
我正在尝试在我的magento数据库上运行以下代码:在MYSQL中识别变量,mysql,magento,Mysql,Magento,我正在尝试在我的magento数据库上运行以下代码: UPDATE catalog_product_entity_media_gallery AS mg, catalog_product_entity_media_gallery_value AS mgv, catalog_product_entity_varchar AS ev SET ev.value = mg.value WHERE mg.value_id = mgv.value_id AND mg.ent
UPDATE catalog_product_entity_media_gallery AS mg,
catalog_product_entity_media_gallery_value AS mgv,
catalog_product_entity_varchar AS ev
SET ev.value = mg.value
WHERE mg.value_id = mgv.value_id
AND mg.entity_id = ev.entity_id
AND ev.attribute_ID = '76'
AND mgv.position = 1;
在运行此程序之前,我需要识别ev.attribute_ID='76',每个安装的76都是不同的
我需要使用什么来发现我的特定安装中的号码
我正在尝试更新我的magento存储中的图像,以批量显示。您可以通过编程方式更新图像。 读一下马吕斯的回答: 在Magento中使用直接sql查询不是一个好主意…您需要了解属性的实体类型代码和属性代码,才能获得特定安装的正确属性id 如果您已经知道这些代码,则可以使用类似的内容,例如:
$entity_type_code = 'catalog_product';
$attribute_code = 'name';
$attributeId = Mage::getSingleton('eav/config')
->getAttribute($entity_type_code, $attribute_code)
->getId();
如何识别属性id的代码
如果您只有一个属性_id,但不知道从何处/如何获取该代码,则以下方法:
如果检查catalog_product_entity_varchar的表定义,您会发现attribute_id是一个外键,它引用了eav_attribute.attribute_id
因此,请检查eav.attribute表以查找属性_id==76的记录
找到的记录确实包含您要查找的常规属性\u代码值
如果您确定所有特定安装的实体类型id都是相同的,那么您甚至不需要获取实体类型代码,可以在此处停止。只需将找到的记录的实体类型id作为第一个参数传递给上面的getAttributecall
如果实体类型id在特定安装中不同,则仍然需要获取实体类型代码
获取找到的记录的entity_type_id的值,并在eav_entity_type表中搜索此entity_type_id entity_type_id是引用eav_entity_type.entity_type_id的外键。找到的记录包含对所有安装有效的常规entity_type_代码的值
话虽如此,出于卑诗省的原因,我总是建议尽可能使用Magento方法