我正在尝试获取每组的最新一行。
$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";
查询仅提取第一行,按时间顺序排序不起作用
答案 0 :(得分: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";
答案 1 :(得分: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的详细信息,最后按状态
排序结果集答案 2 :(得分:0)
我无法让你正确,但直到我理解我认为以下链接真的帮助你
1) php/MySQL insert row then get 'id'
2)的 Get the id of current mysql insert 强>
3)的 MySQL - Select the last inserted row easiest way 强>
4)的 mysql_insert_id 强>
我希望以上链接有用....