是否可以两次查询表/过滤两次表?
例如,我想过滤掉结果,以便我留下的结果显示我的表格中的所有内容,其中一列等于' MAN'另一个时间大于< 12:00:00'我一直这样做,但它不起作用,如下:
if($result = $db->query("SELECT * FROM TBLFlight WHERE IATADep = 'MAN' AND SchDep > '12:00:00';")){
if($result->num_rows){
while($row = $result->fetch_object()){
echo $row->FlightID, ' ', $row->FlightNum, ' ', $row->IATADep , ' ', $row->IARAArr , ' ', $row->SchDep , ' ', $row->SchArr , ' ', $row->Comments ,'<br />';
}
$result->free();
}
}
答案 0 :(得分:1)
您[推测]正在将时间列(SchDep
)与字符串文字('12:00:00'
)进行比较。 MySQL通过将时间转换为字符串,然后比较<
运算符按字典顺序的两边来处理此问题。相反,您可以显式提取小时并正确比较值:
SELECT *
FROM TBLFlight
WHERE IATADep = 'MAN' AND HOUR(SchDep) > 12