Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php FullCalendar和MySQL--优化我的查询_Php_Mysql - Fatal编程技术网

Php FullCalendar和MySQL--优化我的查询

Php FullCalendar和MySQL--优化我的查询,php,mysql,Php,Mysql,我有一个后续问题,是关于我以前在这方面遇到的一个问题。我想知道如何进一步优化/完善我的问题 我以前的问题是: -- OLD QUERY -- SELECT start, end, title, details, location FROM event WHERE (start >= 2012-02-26 00:00:00 AND end <= 2012-04-01 00:00:00) AND user_id= $user_id; 这个查询非常有效,因为它不获取旧事件,比如从1月份开

我有一个后续问题,是关于我以前在这方面遇到的一个问题。我想知道如何进一步优化/完善我的问题

我以前的问题是:

-- OLD QUERY --
SELECT start, end, title, details, location
FROM event
WHERE (start >= 2012-02-26 00:00:00 AND end <= 2012-04-01 00:00:00)
AND user_id= $user_id;
这个查询非常有效,因为它不获取旧事件,比如从1月份开始。因此,查询是快速有效的。但是,对于可能在下个月出现重叠的查询,它不起作用。假设一个活动的开始日期为2012-03-29,但结束日期为2012-04-05。那么,它就不会被拉入查询,因此,不会显示

因此,我的新问题是:

-- NEW QUERY --
SELECT start, end, title, details, location
FROM event
WHERE (end > 2012-02-26 00:00:00 OR start < 2012-04-01 00:00:00)
AND user_id= $user_id;
但是,在新的查询中,它最终拉取了2012年2月26日之前的所有事件,因此速度非常慢,效率低下

如何优化此查询以实现以下两个目标:

a让它工作,以便它收集跨越一个月末到另一个月末的事件? b同时不询问过去的每一个其他事件


希望有办法做到这一点!非常感谢您的意见。

您是否尝试在where语句中添加额外的and

差不多

SELECT start, end, title, details, location
FROM event
WHERE (end > $start OR start < $end)
 AND user_id= $user_id AND $end >CURDATE();

这似乎只会吸引尚未结束的事件

若要查找重叠事件,请更改或,并在您的查询中稍微更改日期以仅与三月重叠:

WHERE (end >= '2012-03-01' AND start < '2012-04-01')

你的问题我不清楚,你能简化一下吗?嗨,天哪,我试着简化我上面的要求。嗨,安德鲁,谢谢你的回复。我试过这个,但后来它吸引了每一个未来的事件。因此,如果某个人在2015年期间一直有1000个事件,那么它们都会出现在响应中。它不应该比您最初的查询做的更多。Where语句通常限制数据,而不是向其中添加更多数据。你最初的查询是什么?这看起来确实有效。非常感谢你在这件事上的帮助。