MySQLのテーブルを複数フィールドの値を使った計算結果で抽出したりソートしたい。例えば、ブログの記事に対して読者が星1つから5つの間で評価を行い、データベースの記事レコードには星の数と評価数が積算されているような状況で、平均の星数の大きい順にソートして記事を表示するにはどうするか、みたいな話。
SQL中で算術演算子を使う
SQL中では算術演算子が使えるので、以下のように書ける。
1 |
SELECT * FROM table WHERE rate_count > 0 ORDER BY rate_total / rate_count |
演算子についていろいろ知っておくと役立ちそう。
参考サイト
MySQL :: MySQL 5.1 リファレンスマニュアル :: 11.4.1 算術演算子
http://dev.mysql.com/doc/refman/5.1/ja/arithmetic-functions.html
nakamura-tech : MySQL入門 – SELECT(2) ソート
http://blog.livedoor.jp/nakamura_tech/archives/51297132.html