sql >> Databasteknik >  >> RDS >> Mysql

Välj endast unik rad/post i mysql

Du kan använda det här mysql-tricket:

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

Detta kommer att returnera den första raden som påträffades för varje unikt värde för city och state_prefix .

Andra databaser kommer att klaga på att du har icke=aggregerade kolumner som inte är listade i gruppen av eller något sådant meddelande.

Redigerad

Tidigare hävdade jag att jag inte använder upper() funktion på de grupperade kolumnerna skulle det returnera alla fallvariationer, men det var felaktigt - tack vare SalmanA för att påpeka det. Jag verifierade med SQLFiddle och du behöver inte använda upper() .



  1. PostgreSQL:FEL:42601:en kolumndefinitionslista krävs för funktioner som returnerar post

  2. Hur returnerar man flera rader från den lagrade proceduren? (Oracle PL/SQL)

  3. Infogar värden för array i MYSQL

  4. Finns det något sätt att använda ON DUPLICATE KEY för att uppdatera allt jag ville infoga?