MySQL 截断不正确的 DOUBLE 值错误

MySQL Truncated incorrect DOUBLE value error

我正在尝试创建一个 MySQL 查询来更新 Woocommerce 中的所有产品变体税 class。

使用下面的查询时,我不断收到此错误,这不是我以前遇到过的问题,google 似乎提供了多种答案,但我无法将修复与我的查询相关联。

我收到错误 - #1292 - 截断了不正确的 DOUBLE 值:'product'?

我不明白错误中产品的价值来自哪里?

UPDATE wp_postmeta a 
   JOIN wp_posts b ON b.id = a.post_id  
   SET a.meta_value = 'test456'

WHERE b.post_type = 'product_variation' & a.meta_key = '_tax_class'

感谢阅读

试试这个:

UPDATE wp_postmeta a 
JOIN wp_posts b ON b.id = a.post_id  
SET a.meta_value = 'test456'
WHERE b.post_type = 'product_variation' and a.meta_key = '_tax_class'

首先,& 不是 AND。它是按位 AND。你想要布尔类型。

UPDATE wp_postmeta pm JOIN
       wp_posts p
       ON p.id = pm.post_id  
   SET pm.meta_value = 'test456'
   WHERE p.post_type = 'product_variation' AND
         pm.meta_key = '_tax_class'

因为MySQL的规则,我认为是解释为:

   WHERE ((p.post_type = ('product_variation' & pm.meta_key) ) = '_tax_class'

(或类似的东西)。关键是这些值没有按照您的预期进行解释。而且,数字也参与其中,因为布尔表达式在数字上下文中被视为数字。