[前][次][番号順一覧][スレッド一覧]

mysql:8883

From: KAWAJI Shinya <KAWAJI Shinya <kawaji@xxxxxxxxxx>>
Date: Tue, 02 Mar 2004 16:04:22 +0900
Subject: [mysql 08883] Re: 整数フィールドの次の空きを探す sql は

かわじ、です。


> > 昇順では2ならば6、6ならば7、7ならば10をみつけるもの。
> 
> というのは言い換えれば「2より大きくて、かつ一番少ない数字」「6より大き
> くて、かつ一番少ない数字」などと考えることが出来ます。


ごめんなさい、全然違いますね、すみません。「空きの数字」の話ですね。


一番簡単のは

>  一応、シーケンシャルなフィールドをもった作業テーブルを媒介に
> 自己結合を用いる方法を考えたのですが、なかなか効率のいい
> やり方がみつかりません。

でいいかと思います。


そのシーケンシャルのテーブルを t_seq として

select min(t.id) from t_seq left join t using (id)
where t.id > 2 and t_seq.id is null group by t.id;

で、いかがでしょう?

これをもっと効率よく、という話でしたでしょうか?


[前][次][番号順一覧][スレッド一覧]

      8880 2004-03-02 15:16 [柴垣 顕郎 <akiro@xx] 整数フィールドの次の空きを探す sql は   
      8882 2004-03-02 15:59 ┣[KAWAJI Shinya <kawaj]                                       
->    8883 2004-03-02 16:04 ┃┗[KAWAJI Shinya <kawaj]                                     
      8888 2004-03-02 20:50 ┃ ┗[柴垣 <akiro@xxxxxxxx]                                   
      8889 2004-03-02 23:40 ┃  ┗[ML account <ml@xxxxx]                                 
      8890 2004-03-03 08:47 ┃   ┗[KAWAJI Shinya <kawaj]                               
      8894 2004-03-03 09:28 ┃    ┣[柴垣 <akiro@xxxxxxxx]                             
      8899 2004-03-03 12:54 ┃    ┃┗[Seiji Uramoto <uramo]                           
      8895 2004-03-03 10:11 ┃    ┣[ML account <ml@xxxxx]                             
      8898 2004-03-03 12:35 ┃    ┗[班石悦夫 <madara@xxx]                             
      8900 2004-03-03 14:44 ┃     ┗[ML account <ml@xxxxx]                           
      8885 2004-03-02 16:19 ┣[ML account <ml@xxxxx]                                       
      8886 2004-03-02 18:48 ┗[班石悦夫 <madara@xxx]