4

私は phpMyAdmin を使用して、単純だと思っていた SQL コードを書いていますが、頭痛の種であることが証明されています。私はこのチュートリアルを使って私を助けています。私の目標は、結果セットから最初と最後の列 ID を取得することです。このクエリを実行すると、15 から 11 までの 5 行が取得されます。

SELECT id
FROM boardPost
WHERE recipientId = 1
ORDER BY id DESC
LIMIT 0,5

ただし、このクエリを実行すると、エラー #1064: "SQL 構文にエラーがあります" が表示されます。

SELECT FIRST(id)
FROM boardPost
WHERE recipientId = 1
ORDER BY id DESC
LIMIT 0,5
4

5 に答える 5

4

もしかしてこういうこと?

SELECT min(id), max(id)
from (
  select id
  from boardPost
  where recipientId = 1
  order by id desc
  limit 0,5
) t
于 2013-03-22T12:58:15.187 に答える
2

結果セットの最初と最後だけが必要な場合はid、次のように考えることができます。

SELECT MIN(id) firstId, MAX(id) lastId FROM someTable WHERE aField = 1;

ORDER BYフィールドを使用する場合にのみ機能することに注意してください。そうしないと、AUTO_INCREMENT予期しない結果が生じる可能性があります。

フルセットでのみ機能します。限られたものの最初と最後が必要な場合は、とorder とidで 2 つのクエリを使用する方がよいでしょう。ASCDESCLIMIT 1

于 2013-03-22T12:52:58.223 に答える
1

それがあなたが望むものだと思いますか?

Select id from boardPost order by id asc limit 1

Select id from boardPost order by id desc limit 1
于 2013-03-22T12:50:12.320 に答える
1

MySQL はこの機能をサポートしていませんFIRST()。そのチュートリアルで指定された回避策を使用する必要があります(ORDER BYおよびを使用LIMIT

于 2013-03-22T12:47:08.083 に答える