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の初心者ではありませんが、これは本当に気になります。