gpt4 book ai didi

MySQL ELSE 返回十进制零而不是普通零

转载 作者:行者123 更新时间:2023-11-29 12:01:46 25 4
gpt4 key购买 nike

这个查询有什么问题,否则返回零作为十进制 0.00 而不是 0?我尝试将玩家数据插入到另一个表中并立即计算玩家准确性。如果在该列中设置零时无法进行精度计算。

查询:

INSERT INTO player_tmp (id, name, accuracy) 
SELECT player.id, player.name,
CASE
WHEN hit0 > 0 AND fired0 > 0 THEN ROUND(hit0/fired0,2)
ELSE 0
END AS accuracy FROM player INNER JOIN weapons ON player.id = weapons.id ORDER BY weapons.kills0 DESC, accuracy DESC

目标表:

CREATE TABLE IF NOT EXISTS `player_tmp` (
`pos` mediumint(6) unsigned NOT NULL AUTO_INCREMENT,
`id` int(8) unsigned NOT NULL DEFAULT '0',
`name` varchar(23) NOT NULL DEFAULT '',
`accuracy` varchar(13) NOT NULL DEFAULT '0',
PRIMARY KEY (`pos`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

最佳答案

来自official documentation CASE 表达式:

The return type of a CASE expression is the compatible aggregated type of all return values

这意味着CASE的类型始终与所有可能的值兼容。 ROUND 返回十进制,因此 CASE 也会返回十进制。

我不知道你在期待什么。无论数据是什么,查询结果都必须具有固定类型

关于MySQL ELSE 返回十进制零而不是普通零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32255017/

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