MySQLで返されるレコード数を指定する方法|LIMIT句の基本と使い方
MySQLのLIMIT句とは?
MySQLでは、クエリにLIMIT句を追加することで、出力として返されるレコード(行)の数を指定できます。LIMIT句は、取得する行数を制限する役割を持ち、大量のデータから必要な件数だけを効率的に取り出したい場合に非常に便利です。
例えば、ランキング形式で上位N件だけを表示したいときや、ページネーションを実装したいときなど、実務でも頻繁に使われる構文です。
サンプルテーブルの確認
まず、以下の例で使用する「ratelist」テーブルを見てみましょう。このテーブルには合計5行のデータが格納されています。
mysql> Select * from ratelist ORDER BY Price; +----+------+-------+ | Sr | Item | Price | +----+------+-------+ | 5 | T | 250 | | 1 | A | 502 | | 2 | B | 630 | | 4 | h | 850 | | 3 | C | 1005 | +----+------+-------+ 5 rows in set (0.00 sec)
上記のクエリでは、Price(価格)の昇順に並べ替えて全5行を表示しています。
LIMIT句を使って取得件数を絞り込む
この中から価格の安い上位3行だけを取得したい場合は、LIMIT句を次のように追加します。
mysql> Select * from ratelist ORDER BY Price LIMIT 3; +----+------+-------+ | Sr | Item | Price | +----+------+-------+ | 5 | T | 250 | | 1 | A | 502 | | 2 | B | 630 | +----+------+-------+ 3 rows in set (0.00 sec)
このように、ORDER BYと組み合わせてLIMIT 3を指定することで、価格の安い順に上位3件のレコードだけが出力されました。
OFFSETと組み合わせた応用例
LIMIT句は開始位置を指定するOFFSETと組み合わせることもできます。例えばLIMIT 3 OFFSET 2と書くと、3行目以降から最大3件を取得できます。これにより、「2ページ目のデータを表示する」といったページネーション処理も簡単に実装可能です。
まとめ
- MySQLで返されるレコード数を制限するにはLIMIT句を使用する
ORDER BYと併用することで、並べ替えた結果の上位N件を取得できるOFFSETを組み合わせれば、任意の位置からの取得やページネーションにも対応できる
-
MySQLでCOUNT(*)に別名(変数名)を付けてテーブルのレコード数を表示する方法
MySQLのCOUNT(*)結果に別名を付ける方法MySQLでは、COUNT(*)の集計結果にAS句を使って別名(エイリアス)を付けることで、あたかも変数のように扱い、テーブル内のレコード数を見やすい形で表示できます。基本となる構文は以下の通りです。SELECT COUNT(*) AS 任意の別名 FROM テーブル名;サンプルテーブルの作成まず、動作確認用のテーブルを作成します。mysql> CREATE TABLE DemoTable695 ( FirstName VARCHAR(100) ); Query OK, 0 rows affected (0.72 sec)レコード
-
MySQLで最新のIDを持つレコードを表示する方法
MySQLのテーブルから、最も新しいID(最大のAUTO_INCREMENT値)を持つレコードを取得したい場面はよくあります。この記事では、サンプルテーブルを作成し、ORDER BY句とLIMIT句を組み合わせることで、最新のIDを持つレコードを表示する手順を解説します。 1. サンプルテーブルの作成 まず、以下のようにテーブルを作成します。IdカラムはAUTO_INCREMENT付きの主キーとして定義します。 mysql> create table DemoTable676( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Nu