MySQL

2/2ページ

MySQL で年月日等の日付別に集計する

いまさら月次集計や年毎の集計など 集計をする際は、主にGROUP BYを多く用いる。 YEAR(), MONTH(), DAY(), DAYNAME(), EXTRACT()が便利。 WHERE で条件しぼるんじゃないらしい(ヲイ) 2010-05 2010-06 等で年月別の集計なら、 SELECT EXTRACT(YEAR_MONTH FROM `datetime`) as 'year_month' , SUM(`price`) as price FROM `hoge_table` GROUP BY EXTRACT(YEAR_MONTH FROM `datetime `); とか。(参照ペ […]

「SQL」ってなんて読む?

「SQL」の読み方について SQLは普通に 「エスキューエル」 と読むらしい。 http://ja.wikipedia.org/wiki/SQL 「シークェル」 と読む事もあるみたいだけど SQLの元となったデータベース言語が、IBM社が開発したRDBMSの実験実装である System R の操作言語「SEQUEL (Structured English Query Language)」であったことが由来である。 との事。 自分は勝手に 「スカル」 と読んでいて、ものすごく読みやすい読み方だと思っていたりする。 MySQLなら 「マイスカル」、PostgreSQLなら 「ポスグレスカル」 シー […]

CentOS5.3 PostfixをMySQL対応にする

2013-01-13追記 MySQL対応のPostfixはCentOS Plusリポジトリを使えばyumでupdate出来るみたい。こっちの方がいいね。 CentOS Plusリポジトリを有効にする # vi /etc/yum.repos.d/CentOS-Base.repo [centosplus] name=CentOS-$releasever - Plus mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus #baseurl=http://m […]

MySQL DATETIME型へのINDEX注意点

MySQLのDATETIME型へインデックスをつける場合注意が必要。 例えばこんなSQLではインデックスが使用されない。 SELECT * FROM table WHERE datetime LIKE '2009-05-17%' 検索結果は2009-05-17分全てが抽出されるが、フルスキャンがかかる。 この場合、以下のようなSQLが良い。 SELECT * FROM table WHERE date_time BETWEEN '2009-05-17' AND '2009-05-17' + INTERVAL 1 DAY 実行時間計測の例 行数:13,776行 データ:2,935KB インデック […]

MySQL(Tritonn)を複数インストール

MySQL4.12が稼働しているサーバにMySQL5.0.67(Ttitonn)をインストールする(MySQL4.12はYUMでインストール済) my.cnf (MySQL4.12) [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # Default to using old password format for compatibility with mysql 3.x # clients (those using the mysqlclient10 compatibility package). old_pa […]

自分が追加した最新のauto_increment番号を取得する

$sql = "INSERT INTO `db_01` ( data1, data2 ) VALUES ( $data1, $data2 )"; $sth = $dbh->prepare( "$sql" ); $sth->execute(); $id = $sth->{mysql_insertid}; これで$idに「自分が追加した最新のauto_increment番号」が代入される ただし下記のようにdoでは使えない。 $sql = "INSERT INTO `db_01` ( data1, data2 ) VALUES ( $data1, $data2 )"; $sth […]