【1】LIMIT
* 出力する行数を制限する * PostgreSQL や Snowflake でも使えるみたい
【2】構文
SELECT [項目1] (, ...) FROM [テーブル名] LIMIT ([開始位置(行数],) 取得する行数
【3】サンプル
SELECT * FROM user LIMIT 5
1)出力結果
"1" "1" "Kim" "1983-12-11" "2" "1" "Mike" "2018-02-02" "3" "1" "Sam" "1922-12-30" "4" "1" "Smith" "2006-07-14" "5" "1" "Nancy" "2003-08-19"
2)テストデータ
テーブル作成
CREATE TABLE IF NOT EXISTS `user` ( `id` INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT, `user_category` INT(11) DEFAULT 1, `name` VARCHAR(20) NULL DEFAULT NULL, `birthdate` DATE NULL DEFAULT NULL ) COLLATE='utf8_general_ci' ENGINE=InnoDB;
テストデータ
-- REPLACE構文:ユニーク値が重複した場合、古いレコードを削除し、新しいレコードを挿入 REPLACE INTO `user` (`id`, `user_category`, `name`, `birthdate`) VALUES (1, 1, 'Kim', '1983-12-11'), (2, 1, 'Mike', '2018-02-02'), (3, 1, 'Sam', '1922-12-30'), (4, 1, 'Smith', '2006-07-14'), (5, 1, 'Nancy', '2003-08-19'), (6, 1, 'Kachy', '2001-12-01'), (7, 2, 'Ken', '1936-05-10'), (8, 2, 'Coco', '1979-04-02'), (9, 2, 'Tom', '1999-03-17'), (10, 2, 'Son', '2000-09-22'), (11, 2, 'Tommy', '1929-05-02'), (12, 3, 'Carry', '1892-11-23'), (13, 3, 'Chan', '1977-11-03');
【4】LIMITあれこれ
1)行数を制限したいが総行数を知りたい
* 「SQL_CALC_FOUND_ROWS」と「FOUND_ROWS()」を使う
2)公式サイト
https://dev.mysql.com/doc/refman/5.6/ja/information-functions.html#function_found-rows
3)サンプル
SELECT SQL_CALC_FOUND_ROWS * FROM user LIMIT 5;
出力結果
5行データが出力(略) SELECT FOUND_ROWS(); 13