2016-03-27 13 views
0

SQLを使い始めるだけで、単純なUPDATE文を実行しようとしています。何らかの理由でそれはうまくいかない。それは、ゼロ誤差による除算を返す実行された後本当に単純なUPDATEクエリが機能しない

UPDATE batting SET BA = (h/ab);

を次のようにコードがあります。

私はその式で単純なselectステートメントを使用するたびに正常に動作します。私は何をする必要がありますか?

+0

のデータ型hとabのデータ型を更新してCASEステートメントを使用できます。 – Naruto

+0

ラフマン野球データベースのヒットとアタック。私自身のデータベースではありません。 – saberfan7

答えて

0

一部のレコードではabの値が0であるため、このエラーが発生しています。これらのレコードをスキップするには、

UPDATE batting 
SET BA = CASE 
      WHEN ab = 0 THEN BA 
      ELSE h/ab 
     END 
WHERE //condition 
+0

パーフェクト、ありがとう! – saberfan7

+0

あなたが助けてくれれば、私の答えは正しい答えとして受け入れることができます:) –

+0

これは 'update batting set ba = IF(ab = 0; ba; h/ab) (http://dev.mysql.com/doc/refman/5.7/en/control-flow-functions.html#function_if))。そして、はい、@ saberfan7、ダルシャンにクレジットを与えてください。 – PerlDuck

関連する問題