我在这里遗漏了一些东西,希望有人可以指出我的错误。以下select语句按预期返回行。
SELECT sku, releasedate FROM staging_product_dimensions WHERE TO_DAYS(`releasedate`) > TO_DAYS(NOW())-30 ;
然而,当我在更新语句中使用相同的where where条件时,没有找到记录。任何洞察原因?
UPDATE staging_product t1
JOIN staging_product_dimensions t2
ON t1.sku = t2.sku
SET t1.categories = CONCAT(t1.categories,';;','What\'s New')
WHERE TO_DAYS(t2.releasedate) > TO_DAYS(NOW())-30 ;
答案 0 :(得分:1)
此更新中没有任何行的原因有四个:
where
子句失败。join
失败。我正在打折(1),因为您似乎能够使用相同的列和表运行select
查询。
如果接下来的两个不是原因,那么第四个似乎是。只有当值为NULL
时才会发生这种情况。您可以尝试使用此set
子句:
SET t1.categories = CONCAT(COALESCE(t1.categories, ''), ';;', 'What\'s New')