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

postid is a increasing numeric value (1,2,3...). At the moment, the highest value is 49, but It's pulling up 1. It seems to be ignoring the MAX statement.

otherwise everything else is working great.

4

3 に答える 3

5

That's not valid syntax, which engine is running it?

You either need:

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

to get multiple records, one for each title, showing the max postid for each title, or

SELECT max(postid) FROM post

to get the single max postid from the table.

If you want the highest postid and the title that goes with it, you need

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

or

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

depending on your SQL engine.

于 2013-01-22T04:15:45.113 に答える
1

重要なことの 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

ステートメントに group by 句がなくても、使用している SQL エンジンがエラーで応答すると予想していました。ただし、GROUP BY が何らかの形でコードの別の場所に暗示されている場合は、select 句から「タイトル」を削除する必要があります (「タイトル」は 1 つの投稿にのみ関連付けられると予想されるため)。その場合、単純に post テーブルから最大 postid を期待する場合、ステートメントは次のようになります。

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