在mysql中表达两个组合条件

时间:2018-11-11 15:17:54

标签: mysql

我有此表,其中包含一些我感兴趣的数据。该表称为交易。基本上,我想选择该表中的所有数据,但必须满足此条件。

  1. trade_session_status="DONE"

  2. (trade_prediction="up" AND trade_result="up" ) OR (trade_prediction="down" AND trade_result="down" )

我这样写了整个查询

select * from trades where trade_session_status="DONE" AND
(trade_prediction="up" AND trade_result="up" ) OR
(trade_prediction="down" AND trade_result="down" )

我想获取trade_session_status为“ DONE”且有人预测了结果确实上升的所有数据,或有人预测了结果下降了的数据。

查询返回一些数据,没有任何错误。我的查询表达式正确吗?。

1 个答案:

答案 0 :(得分:1)

您需要添加其他括号:

select * 
from trades
where trade_session_status="DONE" 
  AND ((trade_prediction="up" AND trade_result="up" ) 
        OR (trade_prediction="down" AND trade_result="down" ))

或者:

select * 
from trades
where trade_session_status='DONE'
  AND (trade_prediction, trade_result) IN (('up', 'up'),('down', 'down'))