我在使用PHP创建mySQL查询时遇到一些问题。我们有一个名为data_instant的表,其中输入了一系列累积观察结果,称为Count_Qty,我们希望从新观察中提取前一个以计算增加量。
$result = mysql_query("SELECT *,
MAX(Record_Time)
FROM data_instant
WHERE Node_ID='$nodeID' AND Type='$type';
$row = mysql_fetch_array ($result);
基本上我希望返回最大的Record_Time行,但它只是收到的第一个实例。之前的观察具有最高的Record_Time(Unix日期戳),所以我不清楚为什么这不起作用......
答案 0 :(得分:14)
如果您想获取具有最新Record_Time
值的行,只需按Record_Time
的降序对行进行排序并获取最上一行:
SELECT *
FROM data_instant
WHERE Node_ID='$nodeID'
AND Type='$type'
ORDER BY Record_Time DESC
LIMIT 1;
答案 1 :(得分:1)
where
子句选择与Node_ID ='$ nodeID'和Type ='$ type'匹配的所有行。
对于每一行,它将返回所有字段和最长记录时间。
如果您希望行具有最长记录时间,则需要将其添加到where
子句中:
SELECT *
FROM data_instant
WHERE Node_ID='$nodeID' AND Type='$type'
and Record_Time = (select MAX(Record_Time)
FROM data_instant
WHERE Node_ID='$nodeID'
AND Type='$type')
答案 2 :(得分:0)
如果您返回的MAX超过MAX,则应将GROUP BY
添加到语句中以确保正确聚合:
SELECT columnA,
columnB,
MAX(Record_Time)
FROM data_instant
WHERE Node_ID='$nodeID' AND Type='$type'
GROUP BY columnA, columnB;
答案 3 :(得分:0)
我希望返回最大的Record_Time行
然后你应该问这个专栏:
SELECT MAX(Record_Time) FROM data_instant
WHERE Node_ID='$nodeID' AND Type='$type'
这将返回指定node_id的max record_time并输入。