Php 选择MAX MySQL查询-异常结果
这是我的MySQL表 当我执行以下查询时:从info_表中选择MAX(动物ID) 我得到“9” 不是应该是10点吗 如何解决错误Php 选择MAX MySQL查询-异常结果,php,mysql,database,Php,Mysql,Database,这是我的MySQL表 当我执行以下查询时:从info_表中选择MAX(动物ID) 我得到“9” 不是应该是10点吗 如何解决错误 谢谢 我猜animal\u id是作为字符字段而不是数字字段存储的。如果需要数字最大值,请尝试以下操作: select max(animal_id + 0) from info_table 当您在MySQL中将两个值相加,其中一个是字符串时,初始数字字符(如果有)将转换为数字。根据其他列中的示例数据判断,您已将所有列设置为VarChar,即文本。您看到的“异常结果
谢谢 我猜
animal\u id
是作为字符字段而不是数字字段存储的。如果需要数字最大值,请尝试以下操作:
select max(animal_id + 0)
from info_table
当您在MySQL中将两个值相加,其中一个是字符串时,初始数字字符(如果有)将转换为数字。根据其他列中的示例数据判断,您已将所有列设置为
VarChar
,即文本。您看到的“异常结果”是这是一个坏主意的众多原因之一
一系列字符串的排序通常按“字母顺序”或“词法”顺序进行——“b”在“z”之前,而不是在“aaa”之前。完全由数字组成的字符串可能看起来像数字,但它们的排序方式与任何其他字符串一样——因此“1”位于“2”之前,但以“1”开头的任何字符串(如“1a”、“10”、“100”)也是如此。这通常不是你想要的
不要解决这一问题以及您将遇到的其他问题,例如日期字段,而应始终在每一列上设置正确的类型。啊,是的。我已将类型更改为INT,它可以正常工作。谢谢