选择具有特定组合的行

时间:2013-07-16 04:50:20

标签: mysql sql

首先让我告诉你们SQLFiddle:http://sqlfiddle.com/#!2/1d8bd/11

我一直在研究这个问题,面对一些程序员(和作家)阻止。

这是我在MySQL中尝试完成的示例伪代码:

Return all rows WHERE {
  (`to_user_id` = '27' AND `to_delete` >= SUBDATE(NOW(), INTERVAL 720 HOUR) )
      AND 
  (`from_user_id` = '27' AND `from_delete` >= SUBDATE(NOW(), INTERVAL 720 HOUR) )
}

2 个答案:

答案 0 :(得分:1)

您是否正在寻找此项(在条件组之间使用OR而不是AND)?

SELECT * 
  FROM messages
 WHERE (to_user_id   = 27 AND `to_delete`   >= NOW() - INTERVAL 720 HOUR)
    OR (from_user_id = 27 AND `from_delete` >= NOW() - INTERVAL 720 HOUR)

这是 SQLFiddle 演示

答案 1 :(得分:1)

您遇到的一个问题是您的小提琴示例中的to_deletefrom_delete字段都是NULL。因此,他们永远无法满足您的WHERE条件。

除此之外,如果您的所有运营商都是AND,则无需括号。也许您正在寻找OR