如何使用 SQl 语法从 MySQL 表中的组中选择最新记录


How to select the lastest record from a group in MySQL table using SQl syntax

>我正在尝试获取每个组的最新行。

$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

我希望上面的链接对您有所帮助。