gpt4 book ai didi

mysql - 为什么我的字符串到十进制转换在 Mysql 中失败

转载 作者:行者123 更新时间:2023-11-28 23:10:17 26 4
gpt4 key购买 nike

查询:

SELECT dsr,
REPLACE(json_extract(JSON_EXTRACT(dsr, "$.*"), "$[0]"), '%', '') as ret1,
CONVERT(REPLACE(json_extract(JSON_EXTRACT(dsr, "$.*"), "$[0]"), '%', ''), DECIMAL(10,2)) as ret2
FROM shops WHERE dsr IS NOT null LIMIT 1;

结果:

dsr: {"x": "44.92%", "y": "36.98%", "z": "27.10%"}
ret1: "44.92"
ret2: 0.00

我只是尝试将 ret1("44.92") 转换为十进制,但它给出了 0.00,这是预期的 44.92。

谁能给我一些建议吗?

最佳答案

CONVERT()不是通用的文本解析解决方案,它只是在直接进行转换时进行转换。它忽略前导空格和尾随非数字字符,仅此而已:

SELECT
CONVERT('44.92', DECIMAL(10,2)),
CONVERT('44.92cm', DECIMAL(10,2)),
CONVERT(' 44.92', DECIMAL(10,2)),
CONVERT('mmm44.92', DECIMAL(10,2)),
CONVERT('"44.92"', DECIMAL(10,2));
+-------+-------+-------+------+------+
| 44.92 | 44.92 | 44.92 | 0.00 | 0.00 |
+-------+-------+-------+------+------+

所以你应该去掉前导的双引号而不是尾随的百分号:

SELECT CONVERT(REPLACE('"44.92%"', '"', ''), DECIMAL(10,2));

关于mysql - 为什么我的字符串到十进制转换在 Mysql 中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46173990/

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