PHP(" SELECT * FROM Table WHERE ... AND ...")

时间:2015-10-31 15:38:49

标签: php mysql sql select phpmyadmin

是否可以两次查询表/过滤两次表?

例如,我想过滤掉结果,以便我留下的结果显示我的表格中的所有内容,其中一列等于' 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, '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;', $row->FlightNum, '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;', $row->IATADep , '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;', $row->IARAArr , '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;', $row->SchDep , '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;', $row->SchArr , '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;', $row->Comments ,'<br />';
        }
        $result->free();
    }
}

enter image description here

1 个答案:

答案 0 :(得分:1)

您[推测]正在将时间列(SchDep)与字符串文字('12:00:00')进行比较。 MySQL通过将时间转换为字符串,然后比较<运算符按字典顺序的两边来处理此问题。相反,您可以显式提取小时并正确比较值:

SELECT * 
FROM   TBLFlight 
WHERE  IATADep = 'MAN' AND HOUR(SchDep) > 12