MySQL リミットとオフセットの例
LIMITキーワードとは何ですか?
limit キーワードは、クエリ結果で返される行数を制限するために使用されます。
SELECT、UPDATE、または DELETE コマンドの LIMIT キーワード構文と組み合わせて使用できます。
LIMIT キーワードの構文は次のとおりです。
SELECT {fieldname(s) | *} FROM tableName(s) [WHERE condition] LIMIT N;
Pr_media
- 「SELECT {フィールド名 | *} FROM tableName(s)” は SELECTステートメント クエリで返したいフィールドが含まれています。
- 「[WHERE条件]」 はオプションですが、指定すると、結果セットのフィルターを指定するために使用できます。
- 「リミットN」 がキーワードであり、 N は 0 から始まる任意の数値です。制限として 0 を指定すると、クエリにレコードは返されません。 たとえば 5 という数字を入力すると、XNUMX つのレコードが返されます。 指定したテーブル内のレコードが N 未満の場合、クエリされたテーブルのすべてのレコードが結果セットに返されます。
例を見てみましょう –
SELECT * FROM members LIMIT 2;
membership_ number | full_ names | gender | date_of _birth | date_of _registration | physical_ address | postal_ address | contact_ number | credit_ card_ number | |
---|---|---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | NULL | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm | NULL |
2 | Janet Smith Jones | Female | 23-06-1980 | NULL | Melrose 123 | NULL | NULL | jj@fstreet.com | NULL |
上のスクリーンショットからわかるように、返されたメンバーは XNUMX 人だけです。
データベースからのみ 10 人のメンバーのリストを取得する
Myflix データベースから最初の 10 人の登録メンバーのリストを取得したいとします。これを実現するには、次のスクリプトを使用します。
SELECT * FROM members LIMIT 10;
上記のスクリプトを実行すると、以下に示す結果が得られます。
membership_ number | full_ names | gender | date_of _birth | date_of _registration | physical_ address | postal_ address | contact_ number | credit_ card_ number | |
---|---|---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | NULL | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm | NULL |
2 | Janet Smith Jones | Female | 23-06-1980 | NULL | Melrose 123 | NULL | NULL | jj@fstreet.com | NULL |
3 | Robert Phil | Male | 12-07-1989 | NULL | 3rd Street 34 | NULL | 12345 | rm@tstreet.com | NULL |
4 | Gloria Williams | Female | 14-02-1984 | NULL | 2nd Street 23 | NULL | NULL | NULL | NULL |
5 | Leonard Hofstadter | Male | NULL | NULL | Woodcrest | NULL | 845738767 | NULL | NULL |
6 | Sheldon Cooper | Male | NULL | NULL | Woodcrest | NULL | 976736763 | NULL | NULL |
7 | Rajesh Koothrappali | Male | NULL | NULL | Woodcrest | NULL | 938867763 | NULL | NULL |
8 | Leslie Winkle | Male | 14-02-1984 | NULL | Woodcrest | NULL | 987636553 | NULL | NULL |
9 | Howard Wolowitz | Male | 24-08-1981 | NULL | SouthPark | P.O. Box 4563 | 987786553 | lwolowitz[at]email.me | NULL |
LIMIT 句の N がテーブル内の総レコード数より大きいため、クエリでは 9 つのメンバーのみが返されたことに注意してください。
上記のスクリプトを次のように書き直すと、
SELECT * FROM members LIMIT 9;
クエリ結果セットには 9 行のみが返されます。
LIMITクエリでのOFF SETの使用
当学校区の オフセット value は、LIMIT キーワードと一緒に使用されることが最も多いです。 OFF SET 値を使用すると、データの取得をどの行から開始するかを指定できます。
行の中央から開始して限られた数のメンバーを取得したいとします。これを実現するには、LIMIT キーワードとオフセット値を併用します。 以下に示すスクリプトは 2 行目からデータを取得し、結果を XNUMX に制限します。
SELECT * FROM `members` LIMIT 1, 2;
上記のスクリプトを実行すると、 MySQL myflixdb に対するワークベンチでは次の結果が得られます。
membership_ number | full_ names | gender | date_of _birth | date_of _registration | physical_ address | postal_ address | contact_ number | credit_ card_ number | |
---|---|---|---|---|---|---|---|---|---|
2 | Janet Smith Jones | Female | 23-06-1980 | NULL | Melrose 123 | NULL | NULL | jj@fstreet.com | NULL |
3 | Robert Phil | Male | 12-07-1989 | NULL | 3rd Street 34 | NULL | 12345 | rm@tstreet.com | NULL |
Note that here OFFSET = 1 Hence row#2 is returned & Limit = 2, Hence only 2 records are returned
LIMIT キーワードはどのような場合に使用する必要がありますか?
myflixdb 上で実行されるアプリケーションを開発していると仮定します。システム設計者から、読み込み時間の遅さに対処するために、ページに表示されるレコード数を 20 ページあたり 20 件に制限するように依頼されました。このようなユーザー要件を満たすシステムを実装するにはどうすればよいでしょうか。このような状況では、LIMIT キーワードが役立ちます。クエリから返される結果を XNUMX ページあたり XNUMX 件に制限できます。
製品概要
- の LIMIT キーワードは、結果セットから返される行数を制限するために使用されます。
- LIMIT 数値には、ゼロ (0) から始まる任意の数値を指定できます。 制限としてゼロ (0) を指定すると、結果セットから行は返されません。
- OFF SET 値を使用すると、データの取得をどの行から開始するかを指定できます。
- SELECT、UPDATE、または DELETE コマンドの LIMIT キーワード構文と組み合わせて使用できます。