MAX(expr)是否有限制

时间:2017-05-20 11:30:16

标签: php mysql

我有一张包含25,000个条目并且在不断增长的表格。在代码中,有这一行

$result = sqlQuery("SELECT MAX(pid)+1 AS pid FROM patient_data");
$newpid = 1;

if ($result['pid'] > 1) $newpid = $result['pid'];

此行从数据库返回错误,该错误表示10000处的重复记录。

这行代码应该是检索pid列的最后一个条目,然后下一行代码添加一行来创建表中的下一个条目。

根据我的研究,MAX()是一个求和工具,而不是用于检索输入表中的最后一个值的工具。 https://dev.mysql.com/doc/refman/5.7/en/group-by-functions.html#function_max

寻找关于如何正确使用它的一些说明。我似乎无法找到明确的答案。希望一些经验丰富的开发人员可以帮助我指导正确的方向。

1 个答案:

答案 0 :(得分:0)

由于表已经自动增加了ID列,因此MySQL中每个表只允许其中一个。我不得不采用不同的方法。

决定以这种方式获得最后一条记录。

$result = sqlQuery("SELECT id AS pid FROM patient_data ORDER BY id DESC LIMIT 1");
$newpid = 1;

if ($result['pid'] > 1) $newpid = $result['pid'] + 1; //Changed by Sherwin

setpid($newpid);