2016-03-02 26 views
0

選擇兩列只不同的值,我創建一個表如何在mysql中

CREATE TABLE `region_details` (
    `id` int(5) NOT NULL, 
    `file_id` varchar(20) NOT NULL, 
    `region` varchar(30) NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 

讓我們假設我有10個記錄如下

id  file_id  region 
1  aaa   a 
2  bbb   b 
3  ccc   a 
4  ddd   c 
5  abc   d 
6  a01   a 
7  j05   b 
8  005   c 
9  a1021  a 
10  111j  b 

我需要ID和區域的不同區域值

id  region 
    1  a 
    2  b 
    4  c 
    5  d 
+3

可能重複[MySQL:只選擇列中的唯一值](http://stackoverflow.com/questions/8571902/mysql-select-only-unique-values-from-a-column) – STaefi

回答

1

簡單地做一個GROUP BY,使用MIN(id)挑選每個地區的第一個ID。

select min(id) as id, region 
from region_details 
group by region 
1

你可以這樣說:

SELECT min(id),region 
FROM YourTable 
GROUP BY region 
-1

其他兩個答案卷起編號爲聚合函數(min,或max或其他一些降低功能),但是看一下數據時,它可能會變成是你想要什麼都ID和地區的獨特組合,您可以通過使用發現以下情況:

select id, region 
from yourtable 
group by id, region 

如果你想得到的是如何/是否/這列捲起,由於對於給定的ID /地區組合的多個文件的存在,你可以嘗試的想法:

select id, region, count(*) 
from yourtable 
group by id, region 

count(*)值的任何行高於1這些跡象表明,在這些特定組合的情況下,你有多個文件匆匆而過。