前回のおさらい
今回は、データベースからデータをとってくる際に取得件数に制限をかけて取得する話しをします。
前回は投稿記事をselect文で並び替えてデータをとってくる話 wordpressのためのsql
復習になりますが、
$sql = "SELECT * FROM wp_posts WHERE post_status = 'publish' AND post_type = 'page' ORDER BY id desc";
DESCが降順でASCは省略可能で昇順でしたね。
sqlでデータ取得数を決めてデータを取得する
今回はsqlでデータ取得数を決めてデータベースにクエリを発行(問い合わせを)します。
では、下記をご覧ください。
$sql = "SELECT post_title FROM wp_posts WHERE post_status = 'publish' AND post_type = 'page' ORDER BY id desc LIMIT 5";
ORDER BYの後にLIMITがありますね。こちらが件数を指定する句です。
「LIMIT 5」は5件取得します。
LIMITのあとの数字は取得件数を表します。
簡単に訳すと「wp_postsテーブルから公開済みでかつ固定のpost_title(記事のタイトル)をid基準で降順に並び替えたうえで、上から(0番目から)5件のデータを選びます。」になります。
LIMITで開始位置を指定する
LIMITで開始位置を指定することもできます。下記を参照のこと。
$sql = "SELECT post_title FROM wp_posts WHERE post_status = 'publish' AND post_type = 'page' ORDER BY id desc LIMIT 5,1";
LIMITのカンマ(,)の左側の5は0から数えて5番目の行から取得する
LIMITのカンマ(,)の右側の1は1件取得する
つまり 0から数えて5番目の行から1件のデータを取得するになります。
簡単に訳すと「wp_postsテーブルから公開済みでかつ固定のpost_title(記事のタイトル)をid基準で降順に並び替えたうえで、0から数えて5番目の行から1件のデータを選びます。」になります。
まとめ
$sql = "SELECT データのカラム名(列名) FROM データが欲しいテーブル名 WHERE post_status = 'publish' //公開済みの //'private' 非公開 AND post_type = 'page' //固定ページ //'post' 投稿ページ ORDER BY 並べ替えの基準の列名 降順か昇順 LIMIT 開始位置,取得件数";
ORDER BYの後にLIMITを書きます。ORDER BYは基本的に最後に記述しますがLIMITを付ける際は
LIMITが最後になります。
LIMITを先に書くと並び替える前に件数を取得してしまうことになります(笑)
もちろん構文エラーが返ってきますが・・・
2年くらい前に私は下記の本で勉強しました。(初版)
|
|