2015-11-10 45 views
0

有沒有辦法創建一個查詢來僅選擇與MySQL和SQL Server兼容的第一個結果?只選擇第一行 - 與Mysql/SQL Server兼容?

SELECT TOP 1 mycolumn, mycolumn2 
FROM mytable 
ORDER BY ID DESC 

適用於SQL Server。

SELECT mycolumn, mycolumn2 
FROM mytable 
ORDER BY ID DESC 
LIMIT 1 

僅適用於MySQL的。

我不想下載任何PDO或數據庫抽象類 - 我想知道是否有兩個SQL查詢兼容性?

+0

其中id = max(id) – user4621032

回答

0

有沒有辦法創建一個查詢來選擇只有第一個結果 這是兼容的MySQL和SQL Server?

簡答題,沒有。

很長的答案,不以任何方式有效。其他人建議WHERE id = MAX(id)。這將工作,如果id是主鍵。但與TOP和/或LIMIT功能提供的那種優化不同。

對不起。

0

如果你想得到TOP 1,你可以使用max() -- DESCmin() -- ASC。但是如果你想得到TOP N,你可以嘗試這樣的:

SELECT mycolumn, mycolumn2 
FROM mytable M1 
WHERE (SELECT COUNT(*) 
     FROM mytable M2 
     WHERE M1.ID < M2.ID) < N -- M1.ID < M2.ID: DESC, < N: TOP N