J'ai ce problème très étrange avec la base de données MySQL.Comportement Bizarre avec COUNT
Pour simplifier la requête, disons juste que je fais appel cette requête pour obtenir des profils correspondant à des paramètres utilisateurs:
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
Cette requête retourne maintenant ensemble de 3 lignes (ce qui est correct). Cependant, quand je veux obtenir le nombre de lignes comme ceci:
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
alors dans un autre cas, il devrait revenir 4, mais il revenait sans cesse 5 et dans ce cas, quand il doit revenir 3, il est de retour NULL.
Je ne sais pas ce que cela veut dire. Je ne suis pas un débutant en sql et cela me dérange vraiment.
Je ne peux pas utiliser le groupe par, car cela ne compterait qu'une seule fois pour chaque âge, il peut y avoir beaucoup d'utilisateurs avec le même âge. – kudlajz
@kudlajz: De quoi parlez-vous? C'est exactement ce dont vous avez besoin! Avez-vous même essayé? Si cela ne fonctionne pas pour vous, votre question n'est pas claire. S'il vous plaît poster quelques exemples d'entrée et de sortie pour démontrer ce que vous cherchez. Vous pourriez trouver le site Web http://sqlfiddle.com utile. –
Si vous n'utilisez pas GROUP BY, vous aurez certainement un résultat dans votre liste de résultats. –