我正在尝试运行一个查询,我希望只有In Stock
行才能拥有最高ID。 (例如,同一组mac地址的较低ID是历史记录)
我使用的MySQL版本是4.0.24
+----------------+-------------+-----+
| mac_address_is | location_is | id |
+----------------+-------------+-----+
| 00xxF7 | In Stock | 185 |
| 00xxF7 | Out | 186 |
| 00xx6A | In Stock | 200 |
| 00xx6A | In Stock | 201 |
我希望这些结果:00xx6A
,因为它是唯一一个In Stock
作为最大ID。
In Stock
的{{1}}应该被忽略,因为它不是位置00xxF7
中的最新(该Mac的最高ID)。
编辑:
由于软件的版本,我无法使用子查询。 In Stock
另外,我认为我不能使用4.0.24
因为我的查询必须返回大约一千个条目。这是最新limit
的一千个条目,即`=“库存'。
答案 0 :(得分:1)
按ID顺序对表格进行排序,过滤库存并将输出中的记录限制为1:
select * from yourtable
where location_is='In Stock'
order by id desc limit 1
答案 1 :(得分:0)
简单的解决方案:
SELECT mac_address_is FROM yourtable
WHERE location_is="In Stock"
ORDER BY id DESC LIMIT 0,1
答案 2 :(得分:0)
SELECT t.mac_address_is, MAX(t.id) as id
FROM mytable t
WHERE t.location_is = 'In Stock'
GROUP BY t.mac_address_is;