SQL クエリで行数をカウントし、別のクエリを実行して最後の 4 行の情報を取得するコードが少しあります。を使用しましROWNUM
たが、機能しません。
$newscount = $db->query("
SELECT *
FROM news
");
$counter = $newscount->rowCount();
$grabnewsmsg = $db->query("
SELECT *
FROM news
WHERE ROWNUM >= $counter-4 -- this particular part doesn't owrk
ORDER BY updateno DESC -- an A_I column
");
問題が発生している特定の領域についてコメントしました。A_I
各行に一意の識別子が必要なので、その部分は問題ありROWNUM
ませんが、SOに関する他の質問/回答に加えて、他のサイトで読んだことにもかかわらず機能しません。エラーを返しますcolumn rownum does not exist
。
最後の 4 行 ( ) だけの情報を取得したいのですが$query->rowCount()-4
、特定のしきい値で選択できませんupdateno
。ユーザーが行を削除した場合、そのA_I
列を適切に使用して行番号を決定することはできません。
さらに、私は以下を試しました:
$grabnewsmsg = $db->query("
SELECT *
FROM news
ORDER BY updateno DESC
LIMIT 0,4
");
これにより望ましい結果が得られますが、なぜ機能しないのかはまだわかりROWNUM
ません。