私は14のエントリでテーブル ‘Labs’を持っています。
SELECT COUNT(Labs.sid)FROM Labs LIMIT
というクエリは “14”を返します。
0、18446744073709551615
しかし、 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
ヌル)。