0

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

$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";

查询只拉起第一行,按时间码排序不起作用

4

3 回答 3

0

它只会拉第一行,因为 group by 只在一列上。

尝试在 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";
于 2013-10-16T10:31:08.917 回答
0

如果您有一个自动递增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 的详细信息,最后按状态对结果集进行排序

于 2013-10-16T10:35:13.100 回答
0

我不能让你正确但直到我明白我认为下面的链接真的可以帮助你

1) php/MySQL 插入行然后获取 'id'
2)获取当前 mysql 插入的 id
3) MySQL - 选择最后插入的行最简单的方法
4) mysql_insert_id

我希望上面的链接有帮助....

于 2013-10-16T10:36:00.323 回答