gpt4 book ai didi

mysql - 使用 CAST : Success; Update with CAST: Failure 选择

转载 作者:行者123 更新时间:2023-11-29 09:47:43 28 4
gpt4 key购买 nike

我看不懂以下作品

SELECT price, CAST(price AS DECIMAL(10,2)) FROM orders;

但是更新失败:

UPDATE orders SET price = CAST(price AS DECIMAL(10,2));
UPDATE orders SET price = CAST(CAST(price AS DECIMAL(10,2)) AS CHAR(20));

错误:

Error Code: 1366. Incorrect DECIMAL value '0' for column '' at row -1

价格列是TEXT

根据我的理解,SELECT 应该与 UPDATE 执行完全相同的操作

最佳答案

在选择中,您只显示转换为小数的结果,在更新中,您将小数保存在非数字中
尝试将结果作为字符串转换为

    UPDATE orders SET price = CAST(CAST(ifnull(price,0) AS DECIMAL(10,2) AS char(20));

或者您可能有一个无法转换为十进制的值,例如为此留出一些空间,您可以使用大小写检查不同的条件

    UPDATE orders SET price = CAST(CAST(
CASE when price IS NULL THEN 0
when trim(price) ='' THEN 0
ELSE price
END ) AS DECIMAL(10,2) AS char(20));

关于mysql - 使用 CAST : Success; Update with CAST: Failure 选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55377255/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com