sql >> データベース >  >> RDS >> Mysql

欠落しているシーケンスギャップを見つけるmysql

    可能なすべての数値のリストがないと、欠落している行をLEFT JOINに返すことはできません。 に対して。

    このクエリ(より良い/より強い/より速いように感じますが、機能します)は、ギャップを見つけます:

    set @last_prefix = null;
    set @last_value = null;
    select result from (
        select @last_prefix, @last_value, name,
          @prefix := substring(name,1,3) as prefix,
          @value := substring(name,4) as value,
          case when @prefix = @last_prefix and @value != @last_value +1
            then concat ("gap from ", @prefix, ": ", @last_value+1, " to ", @value-1)
            else "ok" end as result,
          @last_prefix := @prefix, @last_value := @value
          from t20120921
    ) foo
    where result != "ok";
    



    1. MySQL列挙型データ型のデフォルト値を「いいえ」に設定するにはどうすればよいですか?

    2. 1対多の関係を維持する場合の制約違反

    3. 一般的なエラーの解決方法:2014他のバッファリングされていないクエリがアクティブな間はクエリを実行できません。 PDO接続を使用する

    4. codeigniterデータベースが別のテーブルに移動しています