Mysql 从条件小于的数据库中仅查找一个条目
我只需要从db中找到一个小于另一行的条目 我写了这个查询,除了这个还有别的方法吗Mysql 从条件小于的数据库中仅查找一个条目,mysql,sql,select,Mysql,Sql,Select,我只需要从db中找到一个小于另一行的条目 我写了这个查询,除了这个还有别的方法吗 SELECT * FROM users WHERE birthdate < 1420239600 选择* 来自用户 其中出生日期
SELECT *
FROM users
WHERE birthdate < 1420239600
选择*
来自用户
其中出生日期<1420239600
它将返回出生日期小于1320239600的所有用户
但是我只需要显示一行,像1320239599,而不是1到1320239599
编辑
SELECT * FROM USERS
WHERE birthdate < 13
ORDER BY birthdate DESC
LIMIT 1;
从用户中选择*
其中出生日期<13
按出生日期顺序描述
限值1;
它返回1,因为它在所有函数中的值较小,但要求它应该返回12
SELECT *
FROM users
WHERE birthdate < 1420239600
ORDER BY birthdate DESC
LIMIT 1
选择*
来自用户
其中出生日期<1420239600
按出生日期顺序描述
限制1
MSSQL
SELECT TOP 1 *
FROM users
WHERE birthdate < 1420239600
ORDER BY birthdate DESC
选择前1个*
来自用户
其中出生日期<1420239600
按出生日期顺序描述
这将仅选择第一个条目我认为最安全的选项如下:
SELECT * FROM USERS
WHERE birthdate < 1320239600
ORDER BY birthdate DESC
LIMIT 1;
从用户中选择*
其中出生日期<1320239600
按出生日期顺序描述
限值1;
您让小于运算符走错了方向。
Arijit的答案仅对MS SQL Server或MS Access有效,这个使用ORDER BY和LIMIT的语句在MySQL中是等效的 改用这个:
SELECT *
FROM users
WHERE birthdate = (SELECT MIN(birthdate) FROM users) LIMIT 1;
你的和我的ans之间有什么区别:)@chriswilks它返回的值在其他记录中较小,但要求它应该返回1320239599而不是1,例如,如果数据是从1到10,如果我想要小于5,那么它应该返回4而不是1@software这就是“desc”的顺序,返回1420239555,但我想要的是1420239559只需更改其中的值case@Arijiit慕克吉你有什么价值saying@software你应该使用我建议的合适的日期格式