只查找数据库中一个条目少于条件的条目

时间:2015-01-22 10:06:15

标签: mysql sql select

我只需要从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

3 个答案:

答案 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;