>我有一个包含产品日期记录的表格和包含这些日期记录的更新数据的 CSV 文件。我需要创建一个查询,该查询在此实例中根据列 ID (SKU) 更新这些记录。
数据库
*相关栏目
entity_id, entity_type_id, attribute_set_id, type_id, *sku*, has_options, required_options, *created_at*, updated_at, mf_guid
13366, 4, 4, simple, *18965*, 0, 0, *2015-05-18 20:08:27*, 2016-02-22 13:47:19, NULL
.CSV
sku, created_at
18965, 2016-02-15 16:00:58
我在这里寻找的逻辑是:
UPDATE '2016-02-15 16:00:58' IF 'sku' = 'sku'
由于我有超过 50k 条记录,因此我使用 EmEdiotr 将此查询插入到每一行。
UPDATE 'catalog_product_entity' SET created_at="2016-02-15 16:00:58" WHERE sku = '18965';
尝试 UPDATE tablename SET created_at="2016-02-15 16:00:58" WHERE sku = '18965';
如果将CSV文件作为表导入数据库,则可以使用:
UPDATE table1.table_name
SET table1.created_at = csvtable.created_at
FROM table1 INNER JOIN csvtable ON table1.sku = csvtable.sku
其中csvtable
是导入的 CSV 表的表名,table1
是您谈论的第一个表。
此查询将创建的值设置为每个相应sku
条目的csvtable
中创建的值。
SQL 查询应如下所示:
UPDATE table_name
SET created_at = '2016-02-15 16:00:58'
WHERE sku = 18965;