查询 1 有效但查询 2 无效:
查询#1:
SELECT * FROM `users` WHERE users.dob <= '1994-1-14' AND users.dob >= '1993-1-14' LIMIT 10
查询#2:
SELECT * FROM `users` WHERE users.dob BETWEEN '1994-1-14' AND '1993-1-14' LIMIT 10
第二个应该能够做与第一个相同的事情,但我不明白为什么它不起作用。
users 表中的 dob(出生日期)字段是一个类型为 date
的字段,其记录如下所示:
1988-11-08
1967-11-14
1991-03-09
1958-03-08
1967-06-30
1988-10-19
1986-01-23
1965-09-20
年 - 月 - 日
无论是查询#1 还是#2,我都试图找回所有年龄在 18 到 19 岁之间的用户,因为 1994-1-14
正好是从今天起 18 年,并且1993-1-14
从今天起 19 年。那么有没有办法让 between 查询起作用?
不工作是指在工作查询执行时它不从数据库返回任何记录。
此外,between
查询是否更高效,或者性能差异可以忽略不计?
最佳答案
回答第一部分:“expr BETWEEN AND max”。尝试在第二个查询中切换这两个日期。
关于mysql - 为什么 BETWEEN 在此 MySQL 查询中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8873982/