>我正在尝试获取每个组的最新行。
$SQL = "SELECT location_name, status, timecode FROM status_table WHERE location_name in ('G_01', 'J_01', 'M_01', 'A_01', 'U_01', 'W_01', 'W_1_01', 'C_01', 'G_2_01', 'M_01') GROUP BY location_name ORDER BY status";
查询仅拉出第一行,按时间码排序不起作用
如果您有自动递增id
列:
SELECT location_name, status, timecode FROM status_table WHERE id IN(
SELECT MAX(id) FROM status_table WHERE location_name in ('G_01', 'J_01', 'M_01', 'A_01', 'U_01', 'W_01', 'W_1_01', 'C_01', 'G_2_01', 'M_01') GROUP BY location_name
) ORDER BY status
应该通过获取每个"组"(位置名称)的 MAX ID 来工作,然后获取该 ID 的详细信息,最后按状态对结果集进行排序
它只会拉动第一行,因为分组依据只在一列上。
尝试在 GROUP BY 子句中包含其他选定字段
$SQL = "SELECT location_name, status, timecode FROM status_table
WHERE location_name in
('G_01', 'J_01', 'M_01', 'A_01', 'U_01', 'W_01', 'W_1_01', 'C_01', 'G_2_01', 'M_01')
GROUP BY location_name, status, timecode
ORDER BY status";
我无法正确获得您,但在我理解之前,我认为以下链接确实对您有所帮助
1) php/MySQL 插入行然后获取 'id'
2)获取当前 mysql 插入
的 id3)MySQL - 选择最后插入的行最简单的方法
4)mysql_insert_id
我希望上面的链接对您有所帮助。