mysql float 最小值列

标签 mysql

是否可以使用mysql函数找到一列 float 的最小值?假设我有下表:

id | value
a | 24.88
a | 119.99

如果我尝试:

SELECT MIN(value) FROM [表名] GROUP BY id;

mysql 返回:
119.99

在使用不同的 float 进行测试后,我相信情况是这样的,因为mysql采用每个字符串“1”和“2”中的第一个字符,然后根据哪个字符较小来选择最小值。

我已经浏览过这个论坛和其他人试图找到答案,但似乎没有人提出这个问题。

我应该提到我也尝试过 CEIL(value),但该函数似乎也有一些错误,我更愿意将数字保留为 float 而不是整数。

谢谢大家。

最佳答案

看起来该列正在存储为基于字符的数据类型。您可以通过以下两种方法之一解决此问题:

  1. 将列类型更改为数字类型
  2. 更改查询以在值周围添加 CAST:MIN(CAST(value AS DECIMAL))

列更改可能如下所示:

ALTER TABLE my_table MODIFY COLUMN value double;

并且,据我所知,MySQL尝试为您转换数据。请参阅the note here ,它表示“尝试”。

关于mysql float 最小值列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11388250/

相关文章:

MySQL Blob 与磁盘( "video frames")

MySQL 在运行使用临时的查询时不会建立连接

php - 无法从 PHP 访问数据库值

php - 使用 MyISAM 从多个表中删除

php - Eloquent 外部 Laravel 将获取模式更改为 PDO::FETCH_ASSOC

java - 如何在JSP中为mySQL自动生成唯一ID

php - 删除重复记录而不创建临时表

php - 将所选内容保存在变量中,然后使用该变量进行下一次选择

MySQL计算不在x和y之间的值之间的差异

mysql - 大多数产品如何获得用户