簡體   English   中英

從幾列中選擇不同的

[英]select distinct from several columns

我有一張城市,州和郵政編碼的表格,但是您知道有些城市有多個郵政編碼。 我想返回一個城市行,而不是所有與所有zip關聯的行。 這是用於預想文本輸入的。

cities2 Table example
Colorado Springs | CO | 80910 | Colorado Springs, CO
Colorado Springs | CO | 80911
Colorado Springs | CO | 80912

{
$result = mysql_query("SELECT * FROM `cities2` WHERE `city` LIKE '$city%' LIMIT 5");
    while($row = mysql_fetch_array($result))
    $cities[] = $row['city'];
}

我想返回以“ Colo”開頭的前5個城市名稱,但只有1個科羅拉多斯普林斯。

我希望我能很好地解釋。

你只需要一個小組

SELECT * FROM `cities2` WHERE `city` LIKE '$city%' GROUP BY city LIMIT 5

您可以根據要區分的列進行分組。

SELECT * 
  FROM cities2 
   WHERE city 
    LIKE '$city%' 
      GROUP BY city 
        LIMIT 5 

在我的肥皂盒中:

  1. 僅在使用聚合函數時使用GROUP BY 改用DISTINCT
  2. 明確說明您要返回的列,而不是*。
  3. 使用ORDER BY可以確保每次執行查詢時都返回一致的結果

我的建議:

SELECT DISTINCT city
FROM cities2
WHERE city like '$city%'
ORDER BY city 
LIMIT 5;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM