タグに「MySQL」を持つ
1〜3件目 / 3件
1

 auto incrementの次の値を得る / magicien 

MySQLでauto incrementの次の値を得る方法を調べた。

Dark Horseのカウンターは今のところMySQLのauto incrementの値を使ってカウントしているわけです。で、IPアドレスを記録しておいて、重複カウントを防いでいるんだけど、一日毎に集計して別テーブルにカウントだけ保存、IPアドレスを保存するテーブルの値は消去してしまうため、データが空ってこともあり得るわけです。
そのときにSELECT MAX(カウント)としても、値は0になってしまうのです。

で、auto incrementの値はどこに保存されてるのかなぁと調べてみたところ、
SHOW TABLE STATUS FROM `テーブル名` WHERE `Name` = '列名'
で、Auto_incrementの列にauto incrementの「次の値」が入ることが判明。ちなみに、MySQLのバージョンは5.0。他のバージョンはどうなのかわからんです。
2007/04/20(Fri) 01:10:17

 SELECTで選ばれた行数を得る / magicien 

LIMITで行数を指定していると、SELECT文に該当する行数が本当はいくつだったのかがわからない。LIMITを指定しないクエリを発行することで行数を得るという手もあるが、MySQLではもっといい方法があったのでメモ。

行数を得たいSELECT文に「SQL_CALC_FOUND_ROWS」と書いておき、クエリを発行した直後に、「SELECT FOUND_ROWS()」とすると、LIMITを指定しない場合の行数が得られる。
SELECT SQL_CALC_FOUND_ROWS * FROM `table` LIMIT 0, 10;
SELECT FOUND_ROWS();
これで、余計なデータを取得することなく行数を得ることが出来る。
2007/03/11(Sun) 00:24:26

 MySQLのFROM句のサブクエリ / magicien 

MySQLをいじっていてつまづいたのでメモ。

MySQLのクエリーがテストサーバでは動作したのに、本番のサーバではエラーが起きるという問題があった。どうやら文法のエラーが起きているが、何度見直しても正しい文法のはず。と思ったら、本番サーバのMySQL4.0では、FROM句にSELECT文を入れることができないようだ。FROM句にサブクエリが使えるようになったのはMySQL5.0かららしい。
2007/03/02(Fri) 23:54:20