取得件数を指定して投稿記事を取得する方法 wordpressのためのsql

前回のおさらい

今回は、データベースからデータをとってくる際に取得件数に制限をかけて取得する話しをします。

前回は投稿記事を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年くらい前に私は下記の本で勉強しました。(初版)

シェアする

  • このエントリーをはてなブックマークに追加

フォローする