MySQL查询——2组条件

标签 mysql cakephp logical-operators

这个问题我想了很久,都弄糊涂了!我正尝试在 CakePHP 中为以下场景提出一个 MySQL 查询:

每条记录有2个日期;为了简单起见,我将它们称为 F 和 I。它们决定了数据的质量,如下所示:

  • 错误数据 - F 和 I 均为空
  • 良好的数据 - F 和 I 都是非空的并且代表过去 3 个月内的日期 “介于两者之间”的数据 - 其他一切

前两个很简单:

红色:

$conditions['AND'] = array('F' => null, 'I' => null);

绿色:

$conditions['AND'] = array(
     'F >=' => Three months ago,
     'I >=' => Three months ago
)

但我对第三个选项有疑问。我已经尝试了一些东西,我知道它是这样的:

$conditions['NOT'] = array(
     'AND' => array(
         'F >=' => Three months ago,
         'I >=' => Three months ago
     ),
     'AND' => array(
          'F' => null,
          'I' => null
     )
)

但显然这行不通,因为它有两个不同的“AND”值。

最佳答案

我认为您的 bool 逻辑有问题。如果您希望 F & I 表示过去三个月内的日期,那么您将排除 F >= 三个月或 I >= 三个月的任何条目。

在您的 bool 逻辑中使用德摩根定律会减少混淆 -- NOT (F >= three months OR I >= three months)F < three months AND I < three months相同.因此,对于第三条规则,您的条件数组将如下所示:

array('conditions' => array('AND' => array('F <' => three months, 'I <' => three months)));

关于MySQL查询——2组条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23347764/

相关文章:

r - 如何通过在 R 的 data.table 中建立索引来执行逻辑运算符?

mysql - 仅对连续行进行 SQL Group By

mysql - MySQL中 "$"是什么意思?

从 .txt 文件导入 MySQL

php - 生成带有图像的 PDF 太慢

c - 为什么使用 !!(condition) 而不是 (condition)?

php - 如何从 PHP 数组创建 Windows 文件夹?

php - fatal error : Allowed memory size of 134217728 bytes exhausted (tried to allocate 87 bytes)

asp.net - CakePHP 回调函数在 ASP.Net MVC 中等效

python - 和/或运算符返回值