如何在char列中选择实数MAX整数?

时间:2014-06-24 17:02:47

标签: mysql asterisk

Asterisk中的queue_log表记录了一些调用数据。

所有列都是char(50),因为有时会保存String数据,有时会保存整数数据。

我有一个查询来获取有关通话的一些信息。 在这个查询中,我总是在一列中得到整数数据,我想得到MAX。

MySQL给我一个不连贯的MAX数据。

如何获取char列的实际MAX值以获取所有行的整数数据?

2 个答案:

答案 0 :(得分:4)

呸!但这种数据格式有时是必要的,特别是当你有实体 - 属性 - 值(EAV)数据结构时。即使在这种情况下,建议为不同类型使用不同的列,因此这种操作更自然。

但是,你可以在MySQL中轻松地做你想做的事。如果整数总是非负数,则以下内容应该很容易起作用:

select max(col + 0)
from queue_log ql;

MySQL会将字符串转换为添加的数字。它默默地忽略了字母。并且,转换在第一个字母处停止。如果字符串开头没有数字,则返回0。

注意:这也会转换十进制数字。您指定“整数”但不清楚是否有要忽略的十进制数。

答案 1 :(得分:0)

使用CAST()功能

SELECT MAX(CAST(COLUMN as INTEGER)) FROM TABLE;