MySQL截断了错误的DOUBLE值错误

时间:2017-05-24 11:22:11

标签: mysql sql woocommerce mysql-error-1054

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

使用下面的查询我一直收到此错误,而不是我之前遇到的问题,谷歌似乎提供了各种答案,但我无法将修复程序与我的查询联系起来。

我收到错误 - #1292 - 截断错误的DOUBLE值:'产品'?

我不明白错误会影响产品的价值吗?

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'

感谢您阅读

2 个答案:

答案 0 :(得分:1)

试试这个:

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'

答案 1 :(得分:0)

首先,&不是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'

(或类似的东西)。关键是值不会按预期解释。而且,数字也会涉及,因为布尔表达式在数字上下文中被视为数字。