この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
これにより、最初に検出された行が返されます city
の一意の値ごとに およびstate_prefix
。
他のデータベースは、groupbyまたはそのようなメッセージにリストされていない非集計列があると文句を言います。
編集済み
以前、upper()
を使用しないと主張しました グループ化された列の関数は、すべての大文字小文字のバリエーションを返しますが、それは正しくありませんでした-それを指摘してくれたSalmanAに感謝します。 SQLFiddleを使用して確認しましたが、upper()
を使用する必要はありません。 。