2016-11-25 58 views
1

我已经创建了SQL查询,我想获得更大的数据,然后开始时间少于结束时间意味着在这段时间之间,但问题是,我不是换回来的结果谁能帮助我走出我的时间是在整数mysql不工作与更少,然后更大,然后值

$sql = mysqli_query($connection, "SELECT * FROM listings WHERE address = '$address' AND start_time >= '$start_time' AND end_time <= '$end_time' LIMIT 1"); 
$data = mysqli_fetch_array($sql); 

这是DB的数据

address : 1351 Powell St 
start_time : 900 
end time : 1080 

我插入查询

SELECT * FROM listings 
WHERE address = '1351 Powell St' AND start_time >= '915' AND end_time <= '930' LIMIT 1 

我不知道它为什么会返回0 recods

+3

好吧..上次我检查900小于915和1080超过930,而不是相反。也许这是改变了? ; P –

+0

@JonStirling很好大声笑抱歉,但是这是写的我无法找到也许我犯了一个错误,但如果是这样请帮助我,所以我可以纠正它 –

+0

我刚刚告诉你错误在哪里。 –

回答

1

您的查询不会返回任何行,因为与条件不匹配。

start_time >= '915' AND end_time <= '930' 

end_time是1080,大于930,所以它不会返回任何值。与start_time相同。

1

根据您发布的数据情况应该是另一种方式圆得像

SELECT * FROM listings 
WHERE address = '1351 Powell St' 
AND start_time <= '915' 
AND end_time >= '930' 
LIMIT 1 

顺便说一句,那些start_timeend_time时间列INT类型或VARCHAR的?因为如果他们是字符串类型,那么我想知道>=比较是如何进行的。

0

如果START_TIME和END_TIME是整数的类型,那么试试这个

SELECT * 
FROM listings 
WHERE address = '1351 Powell St' 
     AND start_time >= 915 
     AND end_time <= 930 
LIMIT 1; 

你END_TIME是1080,大于930,所以它不会返回任何值。你的start_time是900,小于915,所以它不会返回任何值。

相关问题