Puede usar este truco exclusivo de mysql:
SELECT city, state_prefix, lattitude,longitude
FROM zip_code WHERE city LIKE '$queryString%'
GROUP BY city, state_prefix -- Here's the trick
LIMIT 10
Esto devolverá la primera fila encontrada para cada valor único de city
y state_prefix
.
Otras bases de datos se quejarán de que tiene columnas no agregadas que no figuran en el grupo o algún mensaje similar.
Editado
Anteriormente afirmé que no usar upper()
en las columnas agrupadas por, devolvería todas las variaciones de mayúsculas y minúsculas, pero eso era incorrecto, gracias a SalmanA por señalarlo. Verifiqué usando SQLFiddle y no necesitas usar upper()
.