Mysql Case 返回错误值

标签 mysql select subquery

在一台服务器上,我使用 mysql 版本 5.0.45,当运行以下查询时,如果 boolvalue='True' AND 2.2,它返回 1,正如它应该的那样。

SELECT Q.value
FROM (
SELECT (CASE table.boolvalue='True' WHEN 1 THEN 1 ELSE 2.2 END) AS value FROM table
) Q;

在另一台服务器(虚拟主机)上,我使用 mysql 版本 5.0.22,当运行相同的查询时,它总是返回 0.9999,为什么?!

但是使用这个查询它会返回它应该返回的结果:

SELECT (CASE table.boolvalue='True' WHEN 1 THEN 1 ELSE 2.2 END) AS value FROM table

我需要使用子查询,因为该查询还执行一些其他操作,只是将其分解以显示错误所在。有人可以向我解释一下吗?

最佳答案

它可能是一个 floating point错误。试试贴ROUND()在您的号码前解决问题

关于Mysql Case 返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1212715/

相关文章:

c# - 第 1 行数据太长

mysql - 为什么 SELECT..PROCEDURE 是 MySQL 语法错误?

SQL 从另一个表中选择平均值

postgresql - 如何改进查询以选择具有 MAX 日期且在 PostgreSQL 中使用联接表的记录?

php - 不能在子查询中使用别名

mysql - 更改数据库结构后更新旧的存储过程

php - 使用 PHP 连接 MAMP 服务器上的 mySQL 数据库

c# - 如何从具有相关条件的列表中选择多个项目

Mysql 根据国家/地区排除和包含

MySQL优化