Vous pouvez utiliser cette astuce mysql uniquement :
SELECT city, state_prefix, lattitude,longitude
FROM zip_code WHERE city LIKE '$queryString%'
GROUP BY city, state_prefix -- Here's the trick
LIMIT 10
Cela renverra la première ligne rencontrée pour chaque valeur unique de city
et state_prefix
.
D'autres bases de données se plaindront que vous avez des colonnes non agrégées non répertoriées dans le groupe par ou un message de ce type.
Modifié
Auparavant, j'ai affirmé que ne pas utiliser le upper()
fonction sur les colonnes groupées par, elle renverrait toutes les variations de casse, mais c'était incorrect - merci à SalmanA de l'avoir signalé. J'ai vérifié en utilisant SQLFiddle et vous n'avez pas besoin d'utiliser upper()
.