php - MySQL / PHP - 在 SELECT 语句的 WHERE 部分计算多个变量
问题描述
我有以下 PHP/MySQL 语句:
$varTemp = mysqli_num_rows(mysqli_query($connect,"SELECT * FROM table WHERE
(Date1 BETWEEN '2017-10-01' AND '2017-10-31' AND marker = 'Post' AND grade1 > 224) OR
(Date2 BETWEEN '2017-10-01' AND '2017-10-31' AND marker = 'Post' AND grade2 > 224) OR
(Date3 BETWEEN '2017-10-01' AND '2017-10-31' AND marker = 'Post' AND grade3 > 224) OR
(Date4 BETWEEN '2017-10-01' AND '2017-10-31' AND marker = 'Post' AND grade4 > 224)"));
现在OR
,语句之间有一个。我也尝试过UNION
,+
但一直得到相同的结果。该语句应该返回 20 条记录,但它只给我 18 条记录,因为有两个人同时在“Date1”和“Date2”语句中。
我的问题是:如何更改此语句以计算那些重复记录?
解决方案
的性质OR
决定了一条记录只计算一次,而不管该WHERE
子句的多少部分匹配。如果您想重复计算多个范围内的记录,那么您在正确的轨道上使用UNION
. 但是,UNION
默认情况下会删除重复项,从而为您提供与OR
. 在您的情况下,您可能想要使用UNION ALL
,它与 相同,UNION
但不会删除重复项。
推荐阅读
- amazon-web-services - 为什么使用 CloudFormation 制作 DynamoDB 表时出现“AttributeName 不能为空”?
- python - 我想制作收入与教育的散点图,但显示错误
- eigen - 如何使用 Eigen 不支持的模块?
- php - 在 Azure App Service Linux 上以 PHP8 中的 PHP 运行 HTML 不工作
- android - List.builder 在滚动时丢失了从 Web 加载的图像
- amcharts - 修改背景色在amcharts中的位置为负值
- go - 为什么使用 VS Code 和 WSL 调试 Go 会挂起 Delve?
- python - 我正在尝试在 Google Colab 中定义一个函数,但出现此错误:“未定义名称‘train_data’”
- android - 找不到 ID 0xffbb86fc 的包 ID ff
- uml - 这是此类图中正确的“组合”关系吗?