更新查询中的Mysql类型转换

Ahm*_*Ali 1 php mysql sql

我有两列的表meta_keymeta_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'附近使用正确的语法

我做错了什么?

Bli*_*itZ 6

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子句指示要修改的列,应给予他们的价值观.