有没有办法创建一个查询来只选择与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 :(得分:0)
是否有办法创建查询以仅选择第一个结果 哪个兼容MySQL和SQL Server?
简短回答,不。
答案很长,不以任何方式有效。其他人建议WHERE id = MAX(id)
。如果id
是主键,那将会有效。但不是TOP
和/或LIMIT
功能提供的优化类型。
对不起。
答案 1 :(得分:0)
如果您想获得TOP 1
,可以使用max() -- DESC
或min() -- 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