Du kan bruge dette mysql-kun trick:
SELECT city, state_prefix, lattitude,longitude
FROM zip_code WHERE city LIKE '$queryString%'
GROUP BY city, state_prefix -- Here's the trick
LIMIT 10
Dette vil returnere den første stødte række for hver unik værdi af city
og state_prefix
.
Andre databaser vil klage over, at du har ikke-aggregerede kolonner, der ikke er angivet i gruppen af eller en sådan meddelelse.
Redigeret
Tidligere hævdede jeg, at jeg ikke brugte upper()
funktion på de grupperede kolonner ville det returnere alle kasusvariationer, men det var forkert - tak til SalmanA for at påpege det. Jeg har bekræftet ved hjælp af SQLFiddle, og du behøver ikke bruge upper()
.