Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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
Mysql 关于使用where子句、日期间隔和'的混淆;和';和或';或';,应该快点_Mysql_Date_Where - Fatal编程技术网

Mysql 关于使用where子句、日期间隔和'的混淆;和';和或';或';,应该快点

Mysql 关于使用where子句、日期间隔和'的混淆;和';和或';或';,应该快点,mysql,date,where,Mysql,Date,Where,这是我正在构建的where子句。我对如何使用'or'和before now()和interval感到困惑。有人可以帮忙吗?这个问题与我搜索的其他问题稍有不同,因为在stackoverflow上有一个或另一个文档,但不同时处理这两个问题。介于之间的的操作数是有序的,因此第一个操作数需要小于第二个操作数。你的表情不是这样的。因此: SELECT * FROM romantic_dates WHERE asker = 'lover' AND date_start BETWEEN NOW() + INT

这是我正在构建的where子句。我对如何使用'or'和before now()和interval感到困惑。有人可以帮忙吗?这个问题与我搜索的其他问题稍有不同,因为在stackoverflow上有一个或另一个文档,但不同时处理这两个问题。

介于
之间的
的操作数是有序的,因此第一个操作数需要小于第二个操作数。你的表情不是这样的。因此:

SELECT *
FROM romantic_dates
WHERE
asker = 'lover' AND date_start BETWEEN NOW() + INTERVAL 90 DAY AND NOW() - INTERVAL 31 DAY
OR
giver = 'lover' AND date_start BETWEEN NOW() + INTERVAL 90 DAY AND NOW() - INTERVAL 31 DAY
ORDER BY date_start DESC;
我倾向于考虑日期表达式和使用:

SELECT rd.*
FROM romantic_dates rd
WHERE (asker = 'lover' AND date_start BETWEEN NOW() - INTERVAL 31 DAY AND NOW() + INTERVAL 90 DAY) OR
      (giver = 'lover' AND date_start BETWEEN NOW() - INTERVAL 31 DAY AND NOW() + INTERVAL 90 DAY)
ORDER BY date_start DESC;

那么到底是什么问题呢?此查询是否产生错误?错误的结果?为了清楚起见,请使用
(asker='lover'…31天)或(giver='lover'…31天)订单。你能详细说明一下什么是混淆吗?没有结果是问题所在,而数据库中有整个范围的条目,并且超出了该范围。
SELECT rd.*
FROM romantic_dates rd
WHERE date_start BETWEEN NOW() - INTERVAL 31 DAY AND NOW() + INTERVAL 90 DAY AND
      'lover' in (asker, giver)
ORDER BY date_start DESC;