我试图从表中获取最大值,但它没有给我正确的值(最大值)。
我使用此查询获取值
SELECT MAX(column_name1) FROM table_name WHERE column_name2 = 'some_value'
column_name的数据类型是VARCHAR。这是显示这个意外结果的问题吗?
答案 0 :(得分:0)
嗯。该值始终为'some_value'
。如果您需要max()
,请删除where
子句:
SELECT MAX(column_name)
FROM table_name;
数据类型与问题无关。
然后你会使用:
SELECT MAX(salary)
FROM table_name
WHERE name = 'John';
编辑:
如果将数字和日期存储为字符串而不是使用本机SQL类型,那么您一定会遇到问题。 MySQL确实可以轻松地从字符串转换为数字,因此您可以尝试这样做:
SELECT MAX(salary + 0)
FROM table_name
WHERE name = 'John';
但真正的解决方案是修复数据类型。
答案 1 :(得分:0)
我认为这是由数据类型引起的。所以请将数据类型更改为int或float并尝试一次。
答案 2 :(得分:0)
MAX()函数用于应用整数值,而不是用于varchar
答案 3 :(得分:0)
我试图将varchar转换为int并且现在正在工作。我改变了这样的查询 -
SELECT MAX(CAST(column_name1 AS Int))FROM table_name WHERE column_name2 ='some_value'