2016-03-11 59 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 
相關問題