MySQL选择记录应该有今天和明天的日期

Far*_*han 3 php mysql

我想选择必须具有两个或两个以上条目但在表中应具有今天和明天日期的记录。我以日期格式将日期保存在表格中。

SELECT `availibility`.* 
FROM (`availibility`) 
WHERE `property_id`= 8818 
AND (availibility.unavailibility_date between CURDATE() 
AND DATE_ADD(CURDATE(),INTERVAL 1 DAY))
Run Code Online (Sandbox Code Playgroud)

我正在使用上面的查询,但是即使存在一个日期(今天或明天),这也将成立。我想获得这样的记录,例如应该有两个日期

+---------+----------------+------------+
|   ID    |   property_id  |  Date      |
+---------+----------------+------------+
| 369516  | 8818           | 2013-01-19 |
| 369517  | 8818           | 2013-01-18 |
| 369518  | 8818           | 2013-01-17 |
| 418021  | 8818           | 2013-08-27 |
| 418022  | 8818           | 2013-08-28 |
| 418022  | 8818           | 2013-08-29 |
| 418022  | 2001           | 2013-07-29 |
| 418022  | 2001           |2013-07-30  |
+---------+----------------+------------+
Run Code Online (Sandbox Code Playgroud)

8818属性应该进入记录集,因为两个日期都在这里

chi*_*ode 5

您可以使用:

NOW() + INTERVAL 1 DAY
Run Code Online (Sandbox Code Playgroud)

如果您只对日期感兴趣,而不是日期和时间,那么您可以使用 CURDATE 而不是 NOW:

CURDATE() + INTERVAL 1 DAY
Run Code Online (Sandbox Code Playgroud)

你的查询应该是

SELECT `availibility`.* 
FROM (`availibility`) 
WHERE `property_id`= 8818 
AND (availibility.unavailibility_date between CURDATE() 
AND CURDATE() + INTERVAL 1 DAY // change here 
Run Code Online (Sandbox Code Playgroud)


fth*_*lla 5

SELECT property_id
FROM yourtable
WHERE date IN (CURDATE(), CURDATE() + INTERVAL 1 DAY)
GROUP BY property_id
HAVING COUNT(DISTINCT date)=2
Run Code Online (Sandbox Code Playgroud)

请看这里的小提琴。