こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

オートインクリメントの最新の値

いずれかの方法で、オートインクリメントで記録している数字の最新のものを取得したいです。
(PHP/MySQL)

考えているのは
オートインクリメントのフィールドの中から一番大きいものを取得
という方法ですが、WHEREの条件式をどのように書けばいいかがわかりません。

また、他にいい方法があれば教えていただきたいです。

投稿日時 - 2011-05-16 13:39:31

QNo.6741559

困ってます

質問者が選んだベストアンサー

最大値を取り出せばいいのなら
SELECT MAX(id) AS maxnum FROM table
で取れるはずです。

正式な値をとりたいなら
SHOW TABLE STATUS WHERE Name = 'table'
として、返った結果にAuto_increment値があります。

投稿日時 - 2011-05-17 00:23:52

お礼

できました!! ありがとうございます。

投稿日時 - 2011-05-17 14:43:46

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

mysql の last_insert_id() ではどうでしょう。
http://dev.mysql.com/doc/refman/5.1/ja/information-functions.html
「オートインクリメントのフィールドの中から一番大きいものを取得」
は同時実行トランザクションがあった場合正しくない値を返すのでお勧めしません。

投稿日時 - 2011-05-16 18:56:22

補足

インサート直後ならそれで取得ができると思いますが、ただデータを引き出すだけでは、返り値は0になってしまいました。(もちろん、データ上の最大値は0ではありません。)

番号の範囲指定のためだけなので、自分で確認する、というのも手ですが、やはり、取得できたらいいなぁと思うので。

投稿日時 - 2011-05-16 19:28:22

あなたにオススメの質問