我有以下查询:
$sql = "SELECT C_Date, C_Time, C_Unique FROM tEnter";
$sql .= " WHERE C_Date >= '" . $_GET['date'] . "'";
根据C_Time
按升序排列。
让我们说某个特定日期我有时会在8:30,9:30,10:30和11:30有四个结果。如何将上述查询更改为仅在我的结果中获得8:30和11:30?
P.S。将有多个日期,每个日期将有一次或多次。
答案 0 :(得分:0)
首先,您应该更改查询以避免SQL注入。查看prepare
和execute
语句。
离开我想,如果结果将按时间排序,你可以得到第一个和最后一个这样的值:
$first = reset($array);//to get the first value
$last = end($array);//to get the last one
答案 1 :(得分:0)
使用 mysql min()和 max()来选择第一个和最后一个日期
SELECT C_Date, MIN(C_Time) as start_time,MAX(C_Time) as end_time, C_Unique FROM tEnter WHERE DATE(C_Date) = **'DYNAMIC DATE'**
注意: - 根据您的逻辑更改“DYNAMIC DATE”。
希望它对你有用。
答案 2 :(得分:0)
您必须自我加入才能找到MAX
和MIN
日期
$sql = " SELECT t.C_Date, t.C_Time, t.C_Unique FROM tEnter as t ";
$sql .= " JOIN (SELECT MAX(C_Time) as formax, MIN(C_Time) as formin FROM tEnter where C_Date >= '" . $_GET['date'] . "') as tmp ON t.C_Time= tmp.formin OR t.C_Time= tmp.formax ";
$sql .= " WHERE t.C_Date >= '" . $_GET['date'] . "'";