[n件]の検索結果
SQLiteのSELECT文でn件目~m件目までのデータを取得する場合も、上位n件の場合と同様にLIMIT句を使用しますが、開始位置の指定が必要になります。データは開始位置で指定した値の次のレコードから取得されます。
構文:
SELECT カラム名, ... FROM テーブル名 LIMIT 開始位置, 行数;
または
SELECT カラム名, ... FROM テーブル名 LIMIT 行数 OFFSET 開始位置;
例えば、ordernum, product, price, quantityの4つのカラムを持つsalesテーブルに10件のレコードが存在していて、priceの値が小さい順に3件目から7件目まで5件のレコードを取得する場合のSELECT文は以下のようになります。
SELECT * FROM sales ORDER BY price LIMIT 2, 5;
または
SELECT * FROM sales ORDER BY price LIMIT 5 OFFSET 2;
このSELECT文を実行すると先頭から2件のレコードは取得されずに、3件目から7件目までの5件分のレコードが取得されます。
LIMIT句を使用しない場合の実行結果:
ordernum, product, price, quantity
3, WII, 4500, 1
5, PS3, 10000, 3
8, G-SHOCK, 12000, 8
9, EXILIM, 14000, 7
1, PS4, 20000, 1
6, COOLPIX, 23000, 1
7, amazon fire, 25000, 6
10, GoPro, 27000, 3
4, iPhone SE, 50000, 4
2, iPhone 6, 1000000, 2
LIMIT句に「LIMIT 5 OFFSET 2」を指定した場合の実行結果:
ordernum, product, price, quantity
8, G-SHOCK, 12000, 8
9, EXILIM, 14000, 7
1, PS4, 20000, 1
6, COOLPIX, 23000, 1
7, amazon fire, 25000, 6
amazon.co.jpのカスタマーレビューを見る
powered by amalink
SQLiteでは、AccessやMicrosoft SQL ServerのようにTOP句を使用して上位n件のデータを取得することはできません。SQLiteのSELECT文で上位n件のデータを取得する場合はLIMIT句を使用します。
構文:
SELECT カラム名, ... FROM テーブル名 LIMIT 行数;
例えば、ordernum, product, price, quantityの4つのカラムを持つsalesテーブルに10件のレコードが存在していて、priceの値が小さい順に3件取得する場合のSELECT文は以下のようになります。
SELECT * FROM sales ORDER BY price LIMIT 3;
LIMIT句を使用しない場合の実行結果:
ordernum, product, price, quantity
3, WII, 4500, 1
5, PS3, 10000, 3
8, G-SHOCK, 12000, 8
9, EXILIM, 14000, 7
1, PS4, 20000, 1
6, COOLPIX, 23000, 1
7, amazon fire, 25000, 6
10, GoPro, 27000, 3
4, iPhone SE, 50000, 4
2, iPhone 6, 1000000, 2
LIMIT句に3を指定した場合の実行結果:
ordernum, product, price, quantity
3, WII, 4500, 1
5, PS3, 10000, 3
8, G-SHOCK, 12000, 8
SQLite ポケットリファレンス
技術評論社 著者:五十嵐 貴之
amazon.co.jpのカスタマーレビューを見る
powered by amalink
PHPのプログラムからMySQLに接続し、SELECTでデータを取得する処理のサンプルプログラムです。
あらかじめphpMyAdminを使用してMySQLにテータベース「testdb」を作成し、以下のSQLを実行しテーブル「users」を作成、3件のレコードを登録しておきます。
CREATE TABLE `users` ( `userid` varchar(100) COLLATE utf8_bin NOT NULL, `password` varchar(250) COLLATE utf8_bin NOT NULL, `status` int(11) NOT NULL, `auth` int(11) NOT NULL, `username` varchar(250) COLLATE utf8_bin NOT NULL, `address` varchar(250) COLLATE utf8_bin NOT NULL, `mailaddr` varchar(100) COLLATE utf8_bin NOT NULL, `hpurl` varchar(250) COLLATE utf8_bin NOT NULL, `widgets` text COLLATE utf8_bin NOT NULL, `createdate` datetime NOT NULL, `lastupdate` datetime NOT NULL, PRIMARY KEY (`userid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin; insert into `users` (`userid`,`password`,`status`,`auth`, `username`,`address`,`mailaddr`,`hpurl`,`widgets`, `createdate`,`lastupdate`) values('admin','1234','1','0','webmaster','', webmaster100@59log.com','http://59log.com/','',now(),now()); insert into `users` (`userid`,`password`,`status`,`auth`, `username`,`address`,`mailaddr`,`hpurl`,`widgets`, `createdate`,`lastupdate`) values('test1','5678','1','1','user 1','', 'test1@59log.com','http://59log.com/','',now(),now()); insert into `users` (`userid`,`password`,`status`,`auth`, `username`,`address`,`mailaddr`,`hpurl`,`widgets`, `createdate`,`lastupdate`) values('test2','abcd','1','1','user 2','', 'test2@59log.com','http://59log.com/','',now(),now());
以下のPHPプログラム(文字コードはUTF-8)では、テーブル「users」からレコードを全て取得しHTMLページとして出力しています。
--- mysql_connect.php ---<html> <head> <title>PHPでMySQLに接続するサンプルプログラム</title> </head> <body> <?php $domain = "localhost"; $user = "test"; $password = "abcd12"; $dbname = "testdb"; // MySQLに接続 $dbconnect = mysql_connect($domain, $user, $password) or die(mysql_error()); mysql_select_db($dbname, $dbconnect) or die(mysql_error()); $sql = "SELECT * FROM users"; // クエリの実行 $result = mysql_query($sql, $dbconnect); if (!$result) { $message = 'Invalid query: ' . mysql_error() . "\n"; $message .= 'Whole query: ' . $query; die($message); } // 結果セットの行数を取得 $rows = mysql_num_rows($result); echo $rows . '件のレコード<br />'; echo '<br />'; // 結果セットを表示 while ($row = mysql_fetch_assoc($result)) { echo $row['userid'] . '<br />'; echo $row['username'] . '<br />'; echo $row['mailaddr'] . '<br />'; echo $row['hpurl'] . '<br />'; echo '<br />'; } mysql_free_result($result); mysql_close($dbconnect); ?> </body> </html>
PerlのプログラムからDBI経由でMySQLに接続し、SELECT文でデータを取得する処理のサンプルプログラムです。あらかじめphpMyAdminを使用してMySQLにテータベース「testdb」を作成し、以下のSQLを実行しテーブル「user...
米国の経済誌「フォーブス」元アジア太平洋支局長、ベンジャミン・フルフォード氏の新著。米国の石油、軍事産業、金融、メディアを支配する闇の権力(ニュー・ワールド・オーダー)が、広告を通じてテレビ・新聞など...
SQLのSELECT文を使用して先頭からn件のレコードを取得するだけでなく、n件目からm件目までのレコードを取得することも可能です。Oracle8i R8.1.5 以降Oracle8i R8.1.5 以降では、Table1のField1の昇順に11件目から15...
(追記あり)
「先頭からn件のレコード(結果セット)だけ取得する方法が知りたい。」というのは、データベース関連のメーリングなどで以前からよくある質問ですが、SQL ServerやOracle、MySQL、PostgreSQLなどRDBやバージョンによ...
(追記あり)
日本振興銀行とは、2004年4月21日に設立された、業務領域を中小新興企業への融資と預金者からの定期預金のみに特化した銀行。金融維新―日本振興銀行の挑戦木村剛 著金融維新を果たすべく、中小企業金融専業銀行「日...
(追記あり)
アクセスランキング
今日のアクセスランキング TOP 10
- SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (92 PV)
- 破産するする詐欺、ちぬちぬ(死ぬ死ぬ)詐欺とは (75 PV)
- 安全性重視の完全無料ナンピンマーチンEA「Million Dollar(ミリオンダラー)」 #FX #ゴールド #ビットコイン (9 PV)
- [FX]高値更新・安値更新でエントリー、MT4向け無料スキャルピングEA「1Scalper」#システムトレード (7 PV)
- Google News (グーグルニュース)日本版 (7 PV)
- MT4向け無料ヘッジ(両建て)ツール(EA)「STOPPER FREE」 #自動売買 #FX (5 PV)
- 自作のMT4向け無料EA(口座縛り無し、ブローカー縛り無し、使用期限無し)とゴゴジャン出品中の有料EAの一覧 #MT4 (4 PV)
- Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (4 PV)
- 時間指定で仲値トレードも簡単にできる無料EA「NAKANE3 Ver 2.02」 (4 PV)
- 日銀マイナス金利解除、17年ぶりの利上げ ドル円(USDJPY)は大きく上昇 (3 PV)
今月のアクセスランキング TOP 10
- SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (2115 PV)
- Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (364 PV)
- 安全性重視の完全無料ナンピンマーチンEA「Million Dollar(ミリオンダラー)」 #FX #ゴールド #ビットコイン (354 PV)
- [FX]高値更新・安値更新でエントリー、MT4向け無料スキャルピングEA「1Scalper」#システムトレード (311 PV)
- 選んではいけないEA #間違いだらけのEA選び (219 PV)
- Google News (グーグルニュース)日本版 (202 PV)
- YouTube(ユーチューブ)日本版 - 動画共有、ライブ配信 (175 PV)
- MT4向け無料ヘッジ(両建て)ツール(EA)「STOPPER FREE」 #自動売買 #FX (171 PV)
- 自作のMT4向け無料EA(口座縛り無し、ブローカー縛り無し、使用期限無し)とゴゴジャン出品中の有料EAの一覧 #MT4 (159 PV)
- SQLiteのSELECT文で上位 (TOP) n件のデータを取得する (110 PV)
アクセス統計
ディレクトリ
関連サイト