MySQL

MySQLでSQLのみを使用してランダム取得を劇的に早くする方法

MySQLでランダムに20行をとるためには以下のようにやればいい。 SELECT * FROM table_name ORDER BY RAND() LIMIT 0, 20; 簡単に取得できるのはいいんだけど、行数が増えると劇的に遅い。どれくらい違うかって言うと10万行のデータベースでも↓ぐらい違う。 …

MySQLで月、年単位で値を抽出する方法

年月のある単位で値を抽出するにはDATA_FORMAT関数で値を加工して、WHEREで引っ掛ければいい。 DATA_FORMAT関数 DATE_FORMAT関数は帰ってくる日付のフォーマットを色々変更することが出来る。詳細は以下のURLを参照のこと。 MySQL :: MySQL 5.6 リファレンス…

MySQLでDB情報とかテーブル情報とかユーザ情報とかを取得するコマンド

ふと使おうとしたときに忘れてしまうコマンドたち。 データベース名の取得 mysql> SHOW DATABASES; 実行結果 mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | hogehoge | | test | …

MySQLで日付の計算

MySQLで日付を操作する方法。〜日後や〜日前の取得 今日から3日後の取得 SELECT DATE_ADD(NOW(), INTERVAL 3 DAY); 今日から3日前の取得 SELECT DATE_ADD(NOW(), INTERVAL -3 DAY); もちろんDAYをYEARやMONTHに変えることで、年月の変更も可能

MySQLで日付別、曜日別、月別の合計を取得する

MySQLでの合計の取得方法。以下の方法で取得できる。 月別の取得 SELECT SUM(val) FROM table_name GROUP BY DATE_FORMAT(date, '%Y%m'); 日付別の取得 SELECT SUM(val) FROM table_name GROUP BY DATE_FORMAT(date, '%Y%m%d'); 曜日別の取得 SELECT SUM(val…

MySQLで文字列操作

文字列データを加工して取得する方法。 編集したデータを取得するか、取得したデータを編集するかは、自由だ〜〜〜!!!参考元:MySQL :: MySQL 5.6 リファレンスマニュアル :: 12.5 文字列関数 SUBSTRING(str,pos) , SUBSTRING(str FROM pos) , SUBSTRING(…