前回までのおさらい
今回は投稿記事の並び順(取得順)を替えて取得する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)";
今回は以上になります。
2年くらい前に私は下記の本で勉強しました。(初版)
|
|