这一直让我感到疑惑,
让我说我有这种情况:
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..)
答案 0 :(得分:5)
不,你不能。
但是,您可以改为使用乘法:
(...) + IF(..., -1, +1) * (...)
答案 1 :(得分: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
答案 2 :(得分:-1)
没有太多理解您的问题,但您可以将任何字符存储在字符串或char变量中并使用它在您的语句中连接