我对 MySQL 数据库有这个非常奇怪的问题。
为了简化查询,假设我正在调用此查询以获取与用户设置匹配的配置文件:
SELECT u.*, floor(datediff(now(), u.birth_date) / 365) as age
FROM users_wr u
LEFT JOIN cities c ON c.id = u.city_id
WHERE u.id != 1 and c.country_id = 71
HAVING age >= 20 AND age <= 25
此查询现在返回 3 行的集合(这是正确的)。但是,当我想获得这样的行数时:
SELECT count(*), floor(datediff(now(), u.birth_date) / 365) as age
FROM users_wr u
LEFT JOIN cities c ON c.id = u.city_id
WHERE u.id != 1 and c.country_id = 71
HAVING age >= 20 AND age <= 25
LIMIT 1
然后在另一种情况下它应该返回 4,但它一直返回 5,在这种情况下,当它应该返回 3 时它返回 NULL。
我不知道那应该是什么意思。我不是 sql 的初学者,这真的很困扰我。