1

これは私の 2 番目の (初心者と呼ぶものです) sql の質問です。SQL の知識を向上させる必要があることはわかっていますが、この場合、仲間の開発者によって高く評価されていません。

とにかく、問題。私はmysql 5を使用しています

私はストアプロシージャAPIを扱っています。spの1つは、テーブルのすべての行を、そのテーブルからの他の計算結果とともに返すことでした。

Table: reports
ID|col_1|col_2|col_3|col_4|col_5
--------------------------------
 x| xxx | xxx | xxx | xxx | xxx 

完了のインデックスを計算しようとしています (以前の開発者はこのための列を追加していませんでした。時間の関係でリファクタリングできません)。

もしそうなら...

col_1 is not null
col_2 is not null
col_3 is null
...

ステージは2

で、もし...

col_1 is not null
col_2 is null <<-- notice the empty field
col_3 is not null

1空のフィールドがあるようにステージになります。

そのため、空のフィールドができるまで段階が増加します。

これで、すべての行を取得してこの情報を php で処理できることがわかりましたが、システムの設計から逸脱したくありません。

誰かが私を正しい方向に向けることができれば、私はそれを感謝します.

4

2 に答える 2

5
Select Case
        When col_1 Is Null Then 0
        When col_2 Is Null Then 1
        When col_3 Is Null Then 2
        When col_4 Is Null Then 3
        When col_5 Is Null Then 4
        Else 5
        End
于 2013-09-18T15:32:13.360 に答える