我有两列的表meta_key和meta_value.它们varchar现在都是meta_key _pricemeta_value的数字,如10.0,20.0等.我试图将此值更新为更高的数字(价格增加百分比).我试图转换meta_value为整数,但它不起作用.
这是我正在尝试的:
update wp_postmeta set CAST(meta_value AS UNSIGNED)=meta_value+meta_value*(0.60)
where meta_key='_price'
Run Code Online (Sandbox Code Playgroud)
但它给出了这个错误:
SQL语法错误; 检查与您的MySQL服务器版本对应的手册,以便在'CAST(meta_value AS UNSIGNED)= CAST'附近使用正确的语法
我做错了什么?
UPDATE语句的左侧赋值部分指定要更新的列,而不是值.您应该CAST()在赋值操作的右侧使用.
UPDATE
wp_postmeta
SET
meta_value = CAST(meta_value AS UNSIGNED) * 1.60
WHERE
meta_key = '_price';
Run Code Online (Sandbox Code Playgroud)
手动报价:
UPDATE [LOW_PRIORITY] [IGNORE] table_reference
SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
[WHERE where_condition]
[ORDER BY ...]
[LIMIT row_count]
Run Code Online (Sandbox Code Playgroud)
在SET子句指示要修改的列,应给予他们的价值观.