更新选择查询

时间:2017-01-24 17:00:01

标签: mysql sql phpmyadmin

我试图摆脱所有的NULL值,并用查询结果中的列dimension_prefix中的=符号替换它们。我不断收到SYNTAX错误,但我无法弄清楚我错在哪里。任何帮助深表感谢。感谢

我正在接受

  

错误#1064 - 您的SQL语法出错;检查>对应于您的MySQL服务器版本的手册,以便在' IN(> SELECT dimension_prefixlengthwidth,{{1}附近使用正确的语法},ovd。height,p。产品_i' at>第1行

name

1 个答案:

答案 0 :(得分:1)

    Actually you are trying is null in .. which is giving you the syntax error.

UPDATE oc_product_option_value_dimension SET dimension_prefix = '=' 
    WHERE coalesce(dimension_prefix,"@@") = (
        SELECT coalesce(`dimension_prefix`,"@@")
        FROM ( SELECT product_id FROM `oc_product` ORDER BY product_id ASC) AS p
        LEFT JOIN `oc_product_option_value` pov ON     pov.product_id=p.product_id 
        LEFT JOIN `oc_product_option_value_dimension` povd ON povd.product_option_value_id=pov.product_option_value_id
        LEFT JOIN `oc_option_value_description` ovd ON ovd.option_value_id=pov.option_value_id
        LEFT JOIN `oc_option_description` od ON od.option_id=ovd.option_id
        WHERE ovd.`name` regexp '^[0-9]+')