MySQL – COUNTとLIMIT関数を併用する

私は14のエントリでテーブル ‘Labs’を持っています。

SELECT COUNT(Labs.sid)FROM Labs LIMIT
0、18446744073709551615
というクエリは “14”を返します。

しかし、 SELECT COUNT(Labs.sid)FROM Labs LIMIT
1、18446744073709551615
というクエリは
“0”を返します。実際には、LIMITローオフセット値2、3、4などを設定すると、 “0”が返されます。

どうしてこれなの? mysqlを使って指定されたオフセットの後に行の数を決定する方法はありますか?

FWIW MySQL 5.5.9とInnoDBデータベースエンジンを使用しています。

ベストアンサー

このカウントは、カウントが実行された後に適用されます。

代わりにこれを試してください:

SELECT COUNT(sid) FROM
(
    SELECT sid FROM Labs LIMIT 2, 18446744073709551615
) T1

ORDER
BYを使用しないでLIMITを使用することは悪い考えです。なぜなら、順序が一貫していることを保証できないため、毎回異なる行を選択できるようにすることです(
sid ヌル)。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です