2016-03-11 18 views
-1
SELECT card_id from logs 
WHERE card_id in ('0001', '0002') 
ORDER BY date desc limit 1 

此代码首先选择与列表匹配的值,然后选择最后一行。 如何首先选择card_id中的最后一行并查看它是否与列表中的任何值匹配我想在SQL中的“WHERE”之前执行“ORDER BY”

+0

通过您所使用的关键术语,听起来有一些代码来走与查询? –

回答

0

以下是一种方法:使用子查询从查询​​中单独选择最后一条记录card_id的值:如果您需要

SELECT l.card_id 
FROM logs l 
WHERE l.card_id IN ('0001','0002) 
AND l.card_id IN (
SELECT TOP 1 card_id FROM logs ORDER BY [Date] DESC) 
1

ORDER之前WHERE你必须嵌套它派生表:

select * 
from 
(SELECT card_id 
    from logs 
    ORDER BY date desc limit 1  -- find the last row first 
) as dt 
WHERE card_id in ('0001', '0002') -- and then filter 
相关问题