PHP Mysql MAX()返回错误的结果


PHP Mysql MAX() returning wrong result

PHP:

$result = mysql_query("SELECT MAX(something) AS something FROM users");
$row = mysql_fetch_assoc($result);
$max =  $row["something"];
echo $max;

Mysql:

+-----------+----------+|某物|名称|+-----------+----------+|9 |约翰||984|某人||1|谁|

代码结果:9,问题是为什么?Mysql的"something"类型是"text"。我的mysql表比上面的这个大,但它仍然不是最大的"东西"。

对列执行数学运算以触发自动转换

SELECT MAX(something * 1) AS something FROM users#

或使用显式投射

SELECT MAX(cast(something as signed)) AS something FROM users

但更好的是,如果该列仅包含数字,则更改该字段的数据类型ti int