Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 选择MAX MySQL查询-异常结果_Php_Mysql_Database - Fatal编程技术网

Php 选择MAX MySQL查询-异常结果

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,即文本。您看到的“异常结果

这是我的MySQL表

当我执行以下查询时:从info_表中选择MAX(动物ID)

我得到“9”

不是应该是10点吗

如何解决错误


谢谢

我猜
animal\u id
是作为字符字段而不是数字字段存储的。如果需要数字最大值,请尝试以下操作:

select max(animal_id + 0)
from info_table

当您在MySQL中将两个值相加,其中一个是字符串时,初始数字字符(如果有)将转换为数字。

根据其他列中的示例数据判断,您已将所有列设置为
VarChar
,即文本。您看到的“异常结果”是这是一个坏主意的众多原因之一

一系列字符串的排序通常按“字母顺序”或“词法”顺序进行——“b”在“z”之前,而不是在“aaa”之前。完全由数字组成的字符串可能看起来像数字,但它们的排序方式与任何其他字符串一样——因此“1”位于“2”之前,但以“1”开头的任何字符串(如“1a”、“10”、“100”)也是如此。这通常不是你想要的


不要解决这一问题以及您将遇到的其他问题,例如日期字段,而应始终在每一列上设置正确的类型。

啊,是的。我已将类型更改为INT,它可以正常工作。谢谢