1

これはずっと疑問に思っていたのですが、

私がこの状況にあるとしましょう:

select (...long sub query..) - (...long sub query..)

そして、状態にしたいのですが、そうなる場合もあれば、-そうなる場合-もあり+ます。これを行う簡単な方法はありますか?私が知っている方法は次のとおりです。

select if(condition,(...long sub query..) - (...long sub query..),
   (...long sub query..) + (...long sub query..))

これにより、クエリの読み取りと保守が難しくなり、ストアドプロシージャに入れられなくなります。

算術演算をある種の var に入れて、どうにか連結できますか?

私が達成しようとしているのは次のようなものです:

select (...long sub query..) if(condition,-,+) (...long sub query..)
4

3 に答える 3

5

いいえ、できません。

ただし、代わりに乗算を使用できます。

(...) + IF(..., -1, +1) * (...)
于 2013-03-14T15:23:41.310 に答える
0

各サブクエリを変数に保存してから、IF.

SELECT @a:=(...long sub query..), @b:=(...long sub query..),
  IF(condition, @a-@b, @a+@b) AS result

MySQL 変数のドキュメント: http://dev.mysql.com/doc/refman/5.0/en/user-variables.html

于 2013-03-14T15:23:48.517 に答える
-1

あなたの質問をあまり理解していませんでしたが、文字列またはchar変数に任意の文字を格納し、それを使用してステートメントに連結することができます

于 2013-03-14T15:26:38.580 に答える