我只需要从db中找到一个小于其他行的条目
我写过这个查询,还有其他方法吗?
SELECT *
FROM users
WHERE birthdate < 1420239600
它将返回所有出生日期小于1320239600的用户 但我只需要显示一行,如1320239599,而不是1到1320239599
修改
SELECT * FROM USERS
WHERE birthdate < 13
ORDER BY birthdate DESC
LIMIT 1;
它返回1,因为它总是较少,但要求是它应该返回12
答案 0 :(得分:1)
MYSQL
SELECT *
FROM users
WHERE birthdate < 1420239600
ORDER BY birthdate DESC
LIMIT 1
<强> MSSQL 强>
SELECT TOP 1 *
FROM users
WHERE birthdate < 1420239600
ORDER BY birthdate DESC
这将仅选择第一个条目
答案 1 :(得分:1)
我认为最安全的选择是这样的:
SELECT * FROM USERS
WHERE birthdate < 1320239600
ORDER BY birthdate DESC
LIMIT 1;
你有一个不正确的操作员错误的方式。 Arijit的答案仅对MS SQL Server或MS Access有效,使用ORDER BY和LIMIT的此语句在MySQL中是等效的。
答案 2 :(得分:0)
改为使用这个:
SELECT *
FROM users
WHERE birthdate = (SELECT MIN(birthdate) FROM users) LIMIT 1;