投稿記事を並び替えて取得する方法 wordpressのためのsql

前回までのおさらい

今回は投稿記事の並び順(取得順)を替えて取得するsqlを書いていきます。

前回は投稿記事をselect文で条件を複数指定してデータをとってくる話 wordpressのためのsql

sqlでデータベースに複数条件を指定する

復習になりますが、sqlでデータベースに複数条件を指定するときは、

$sql = "SELECT * 
        FROM wp_posts 
        WHERE post_status = 'publish'
        AND post_type =  'page' ";

ANDをWHEREの後に付ける、でしたね。

並び順を指定する

今回は並び順です。

$sql = "SELECT * FROM wp_posts ORDER BY id ASC";
$sql = "SELECT * FROM wp_posts ORDER BY id";
$sql = "SELECT * FROM wp_posts ORDER BY 並び順の基準にしたい列名を記述(複数も可)";

上記のsqlを簡単に訳すと「wp_postsテーブルから*(全ての列)をidの昇順でデータを選びます。」ですね。
ORDER BYのASCは省略できます。
降順にしたい場合は、

$sql = "SELECT * FROM wp_posts ORDER BY id DESC";

ASCの部分をDESCに変えれば降順になります。
※ORDER BYのDESCは省略できません。
周知のことかと思いますが、
昇順は1,2,3,4,5と数字が上がっていきます。昇る順番です。
逆に降順は4,3,2,1と数字が下がっていきます。降りる順番です。

日本語(マルチバイト)の並び替えは完全にはなりません。抜けたりします。
例えば、

$sql = "SELECT * FROM wp_posts ORDER BY post_title";

post_titleは投稿記事のタイトルです。

オーダーバイを追加したsql

条件を指定していてもORDER BRは使用できます。

$sql = "SELECT * 
        FROM wp_posts 
        WHERE post_status = 'publish'
        AND post_type =  'page'  
        ORDER BY id desc";

ORDER BYは最後に書くと覚えておけば問題ないと思います。
簡単に訳すと「wp_postsテーブルから公開済みでかつ固定ページの*(全ての列)をidの降順で選びます。」ですね。

言い換えると「wp_postsテーブルから*(全ての列)を選びます。ただし公開済みであり、固定ページのみで、あとそれをidの降順で並び替えてお願いね!」ってことになります。

$sql = "SELECT post_title
        FROM wp_posts 
        WHERE post_status = 'publish'
        AND post_type =  'page'  
        ORDER BY id desc";

上記のようにすると「全ての列」ではなく「投稿記事のタイトル」の列のみを選びますになります。

まとめ

$sql = "SELECT 欲しい列名1,欲しい列名2
        FROM データが欲しいテーブル名 
        WHERE 条件の列名 = 条件の値
        AND 条件の列名2 =  条件の値2  
        ORDER BY 基準にしたい列名  降順又は昇順を指定(ASC 又は DESC)";

今回は以上になります。

シェアする

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

フォローする