0

「-1」の値を持つ列を持つ MySQL DB があります。結果に対して foreach ループを実行せずに、SELECT 中にそれを「0」に変更するにはどうすればよいですか。基本的に、DB 値が -1 の場合、「表示」値を 0 にします。DB 値がそれ以外の場合は、変更せずに表示する必要があります。

何か案は???

4

4 に答える 4

4

case次の構文を使用できます。

select case 
       when col = -1 then 0
       else col
       end case
from Tab

また

  select case col
           when -1 then 0
           else col
           end case
    from Tab

詳細はこちら

またif construct

select if(col=-1,0,col)
from Tab

詳細はこちら

于 2012-10-03T13:36:48.640 に答える
2

App.net の友人は次のように言いました。

SELECT IF(mycol=-1, 0, mycol)

これは御馳走になるようです。:)

于 2012-10-03T13:41:31.503 に答える
0

case ステートメントの別のオプションは、以下の IF 関数です。

//IF(expr,if_true_expr,if_false_expr)
SELECT IF(column = -1, 0, column) AS state FROM table
于 2012-10-03T13:42:56.870 に答える
0

または、より短い構文の「IF」スカラー関数

SELECT IF (col = -1, 0, col)
FROM Tab

http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html#function_if

于 2012-10-03T13:40:47.990 に答える