sql >> Database teknologi >  >> RDS >> Mysql

Vælg kun unik række/record i mysql

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() .



  1. Konverter 'datetime offset' til 'datetime' i SQL Server (T-SQL-eksempler)

  2. Kontrollerer for maksimal længde af på hinanden følgende dage, som opfylder specifikke betingelser

  3. Er LAST_INSERT_ID() i en transaktion pålidelig?

  4. Hvordan kan jeg få emacs sql-mode til at bruge mysql-konfigurationsfilen (.my.cnf)?