sql >> Database >  >> RDS >> Mysql

Selecteer alleen unieke rij/record in mysql

Je kunt deze mysql-truc gebruiken:

SELECT city, state_prefix, lattitude,longitude
FROM zip_code WHERE city LIKE '$queryString%'
GROUP BY city, state_prefix -- Here's the trick
LIMIT 10

Dit retourneert de eerste gevonden rij voor elke unieke waarde van city en state_prefix .

Andere databases zullen klagen dat u niet=-geaggregeerde kolommen heeft die niet in de groep worden vermeld door of een dergelijk bericht.

Bewerkt

Eerder beweerde ik dat het niet gebruiken van de upper() functie op de gegroepeerde kolommen zou het alle variaties van hoofdletters retourneren, maar dat was onjuist - dankzij SalmanA voor het erop wijzen. Ik heb geverifieerd met SQLFiddle en u hoeft upper() niet te gebruiken .



  1. Realtime volgen in google map

  2. Problemen met PostgreSQL-prestaties identificeren met trage query's

  3. Kijk of lat / long binnen een polygoon valt met mysql

  4. mysqldump van een query