gpt4 book ai didi

MySQL 使用 AND 和 OR 进行复杂查询

转载 作者:行者123 更新时间:2023-11-29 13:12:25 24 4
gpt4 key购买 nike

似乎我正在尝试一次性学习所有内容:PHP、JS,现在又学习 MySQL 查询,因此即使掌握其中一项也需要很长时间...我有一个测试数据库,如下所示。我希望用户查看给定日期范围内的所有测试(预测试和后测试)。这是我尝试过的(但失败了):

$query = $pdo->prepare("SELECT * 
FROM `starprepost`
WHERE (`pretestdate` >= ? AND `pretestdate` <= ?)
OR (`posttestdate` >= ? AND `posttestdate <=?)
AND `site` = '". $_POST['fromlocation'] ."'
ORDER BY `pretestdate`, `posttestdate` ASC");
$query->execute(array($datebeginning, $dateending, $datebeginning, $dateending));

这是架构。此外,任何有关如何构建良好查询的引用都值得赞赏。

CREATE TABLE `starprepost` (
`firstname` text,
`lastname` text,
`studentnumber` text,
`site` text,
`pretestdate` date DEFAULT NULL,
`posttestdate` date DEFAULT NULL,
`q1` text,
`q2` text,
`q3` text,
`q4` text,
`q5` text,
`q6` text,
`q7` text,
`id` int(6) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=55 DEFAULT CHARSET=latin1

最佳答案

尝试一下

$query = $pdo->prepare("SELECT * 
FROM `starprepost`
WHERE ((`pretestdate` >= ? AND `pretestdate` <= ?) OR `pretestdate`= NULL )
AND ((`posttestdate` >= ? AND `posttestdate` <=?) OR `posttestdate` = NULL )
AND `site` = '". $_POST['fromlocation'] ."'
ORDER BY `pretestdate`, `posttestdate` ASC");
$query->execute(array($datebeginning, $dateending, $datebeginning, $dateending));

关于MySQL 使用 AND 和 OR 进行复杂查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21901342/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com