1
$query="SELECT title, max(postid) FROM post";

postid 是一个递增的数值(1,2,3...)。目前,最高值为49,但它拉高了 1。它似乎忽略了 MAX 语句。

否则其他一切都很好。

4

3 回答 3

5

这不是有效的语法,哪个引擎正在运行它?

您要么需要:

 SELECT title, max(postid) FROM post GROUP BY title;

获取多条记录,每个标题一个,显示每个标题的最大 postid,或

SELECT max(postid) FROM post

从表中获取单个最大 postid。

如果你想要最高的 postid 和随之而来的标题,你需要

 SELECT TOP 1 title, postid FROM post ORDER BY postid DESC

或者

 SELECT title, postid FROM post ORDER BY postid DESC LIMIT 1

取决于您的 SQL 引擎。

于 2013-01-22T04:15:45.113 回答
1

重要的一点是MAX函数中使用的字段应该是INT 类型

然后它会给出准确的结果:

SELECT title, max(postid) FROM post GROUP BY title

Postid 应该是一个整数。

于 2020-03-28T08:10:30.853 回答
0

你有没有尝试过:

SELECT title, max(postid) FROM post GROUP BY title

我本来希望您使用的任何 sql 引擎都会在您的语句中没有 group by 子句的情况下以错误响应。但是,如果 GROUP BY 以某种方式隐含在代码中的其他地方,则应从 select 子句中删除“title”(因为我希望“title”无论如何都只与一篇文章相关联)。在这种情况下,如果您只是期望 post 表中的最大 postid 您的语句应为:

SELECT max(postid) FROM post
于 2013-01-22T04:22:34.750 回答