Il HAVING
La clausola è pensata per essere utilizzata su dati aggregati quando si raggruppano le righe utilizzando il GROUP BY
clausola. Poiché stai operando su ogni riga singolarmente, dovresti sostituire HAVING
con un WHERE
clausola. Vedi questo esempio
per i dettagli.
L'uso di HAVING su colonne non aggregate nell'elenco SELECT è un comportamento non standard supportato da MySQL, ma un comportamento su cui non si dovrebbe fare affidamento. Anche il riferimento MySQL lo scoraggia:
Per inciso:se stai passando argomenti dall'utente alla tua query (con il %s
), assicurati di esaminare le dichiarazioni preparate. Altrimenti potresti avere un evidente difetto di sicurezza tra le mani.