首页 文章

MySQL截断了错误的DOUBLE值错误

提问于
浏览
0

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

使用下面的查询我一直收到这个错误,它不是我以前遇到的东西,谷歌似乎提供了各种答案,但我无法将修复与我的查询联系起来 .

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

我不明白错误产品的 Value 来自哪里?

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

    试试这个:

    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

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

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

相关问题