Mysql
 sql >> Base de données >  >> RDS >> Mysql

SELECT à partir de la vue MySQL avec la clause HAVING renvoie un ensemble de résultats vide

Le HAVING La clause est destinée à être utilisée sur des données agrégées lorsque vous regroupez des lignes à l'aide de GROUP BY clause. Puisque vous opérez sur chaque ligne individuellement, vous devez remplacer HAVING avec un WHERE clause. Voir cet exemple pour plus de détails.

L'utilisation de HAVING sur des colonnes non agrégées dans votre liste SELECT est un comportement non standard pris en charge par MySQL, mais un comportement sur lequel il ne faut pas s'appuyer. Même la référence MySQL le décourage :

En aparté :si vous transmettez des arguments de l'utilisateur à votre requête (avec le %s ), assurez-vous d'examiner les déclarations préparées. Sinon, vous pourriez avoir une faille de sécurité flagrante entre vos mains.