mysql:9248
From: Shinya Kawaji <Shinya Kawaji <kawaji@xxxxxxxxxx>>
Date: Wed, 21 Apr 2004 10:12:53 +0900
Subject: [mysql 09248] Re: auto_incrementで次番号を確認したい。
かわじ、です。 > "year と id の組み合わせが重複しない一意の番号である。" > > ということですね。この方法ですと、year+idの番号は重複していないのですが、 > id番号は重複してしまいますので、id番号のみの抽出はできなくなってしまいま > すね。 「id番号のみ」っていうのがよく分かんないですが、たとえば平成16年の 3番目の データでしたら select concat( lpad(year - 1988, 2, '0'), lpad(id, 4, '0') ) as id from example where year = (16 + 1988) and id = 3; でいいかと思います。そういう意味でしょうか? > 現状ではid番号のみでレコードの追加・抽出をしていますので、ソースの修正が > 必要となってきます。ちょっと大変ですけどチャレンジしてみます。 > 管理用画面だけでなんとかなるかな〜? は甘かったですね。(^^; ちなみに、現状のままで、SQLだけで何とかしようと思えば、以下のように 出来るかと思います。 -- 試してないので typo があるかも -- 保守性にこだわらなければ、もう少し短くはなります select ifnull( max(id), concat( lpad(year(now()) - 1988, 2, '0'), lpad(0, 4, '0') ) ) + 1 as id from example where year > concat( lpad(year(now()) - 1988, 2, '0'), lpad(0, 4, '0') );
9239 2004-04-20 18:45 [高橋政利 <takahashi@] auto_incrementで次番号を確認したい。 9240 2004-04-20 23:29 ┣[Shinya Kawaji <kawaj] 9245 2004-04-21 09:00 ┃┗[高橋政利 <takahashi@] -> 9248 2004-04-21 10:12 ┃ ┗[Shinya Kawaji <kawaj] 9250 2004-04-21 11:20 ┃ ┗[ML account <ml@xxxxx] 9246 2004-04-21 09:15 ┣["片寄白王" <katayose] 9251 2004-04-21 17:39 ┃┗[川合孝典 <gcd00051@x] 9252 2004-04-21 18:02 ┃ ┣["山本 瑞己" <mizuki] 9253 2004-04-21 18:53 ┃ ┗[ML account <ml@xxxxx] 9254 2004-04-22 00:19 ┃ ┗["KATAYOSE hakuo" <ka] 9255 2004-04-22 01:42 ┃ ┗[ML account <ml@xxxxx] 9256 2004-04-22 09:02 ┃ ┗["片寄白王" <katayose] 9258 2004-04-22 09:36 ┃ ┗[高橋政利 <takahashi@] 9265 2004-04-22 11:44 ┃ ┗[ML account <ml@xxxxx] 9249 2004-04-21 10:56 ┣[Seiji Tateyama <tate] 9257 2004-04-22 09:07 ┣[高橋政利 <takahashi@] 9264 2004-04-22 11:44 ┃┗[ML account <ml@xxxxx] 9277 2004-04-23 00:29 ┗[Kenji Irie <kenji@xx] 9279 2004-04-23 08:01 ┗[高橋政利 <takahashi@]