php - SQL查找VARCHAR类型列中的最大数

标签 php sql select numbers max

我有 SQL 表,其中有列 DISTANCE (varchar50)。它是带点的数字。

+----+--------+--------+----------+
| ID | USERID | MONTH  | DISTANCE |
+----+--------+--------+----------+
| 1  |    1   | 201707 |   7.25   |
+----+--------+--------+----------+
| 2  |    2   | 201707 |   9.17   |
+----+--------+--------+----------+
| 3  |    2   | 201707 |  10.31   |
+----+--------+--------+----------+
| 4  |    1   | 201706 |  10.08   |
+----+--------+--------+----------+

我想显示距离的最大值。如果我按距离 DESC 排序,结果是:

SELECT * FROM mytable ORDER BY distance DESC
9.17
7.25
10.31
10.08

我尝试找到最大值,但仍然不正确

SELECT MAX(distance) AS mvzd FROM mytable
9.17

如何使用提供的示例数据获得正确的最大距离值(应为 10.31)?

最佳答案

PROBLEM

SOLUTION

您可以使用以下查询:

select max(cast(distance as decimal(10,2))) AS mvzd FROM mytable

通过您现有的查询,您在 VARCHAR 类型列上找到 MAX,并且您得到了您所写的正确结果!如果您想获得所需的结果,首先您必须像我在上面的查询中所做的那样转换该列的类型。

关于php - SQL查找VARCHAR类型列中的最大数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47655548/

相关文章:

php - PHP 中的 "Hello, World"什么都不显示

mysql - 如何对具有不同条件的两列中的值进行算术运算,然后将答案合并到一个查询中?

javascript - 当 onfocus 设置选择大小时,Google Chrome 会崩溃

css select dropdown 在某些 <option> 上加粗

mysql - MySQL中选定值的逗号分隔字符串

php代码从mysql数据库获取json数据

javascript - PHP本地主机和服务器的结果不同

php - 如何使用 PHP 和 SQLite 3 检查 select 查询是否返回值或为空

文本文件格式的 SQL 代理作业输出

sql - 了解 CUBE 和 ROLLUP 之间的差异