Mysql - 如何获取varchar列的最大值

时间:2012-12-20 05:15:53

标签: mysql sql

我有一个表如下ID是一个数字列,Total是Varchar(20) - 表名是订单:

ID       Total

1        $10

2        $1,000

3        $1500.50

4        300

5        20.50

6        -80

通过

SELECT statement I would like to get the Id of the highest total i.e 3. 

SELECT ID, MAX(CONVERT(Total, SIGNED INTEGER)) AS total FROM orders 

给了我最高但不正确的ID。

我想忽略美元符号($)和逗号(,)

3 个答案:

答案 0 :(得分:3)

只是使用 MAX(CONVERT(replace(replace(total,',',''),'$',''), SIGNED INTEGER)) AS total

答案 1 :(得分:2)

您的查询应该是这样的。它有效,我也用过它。

试试这个:

SELECT MAX(CONVERT({column_name}, SIGNED INTEGER)) AS {column_name or xyz_name} from {table_name} 

答案 2 :(得分:1)

在VARCHAR字段中存储金额听起来像是在寻找麻烦。

您可以尝试在转换为数字之前使用$删除前导REPLACE,但这仍然是错误的。

请重新设计您的架构并将金额存储在适当类型的列中,否则不会出现这些问题。