2010-11-30

MySQL 剔除某欄重複的資料

使用 GROUP BY:
SELECT * FROM `some_table` GROUP BY `some_field`

將結果寫入另一張表:

CREATE TABLE `tmp_table` AS (
SELECT * FROM `some_table` GROUP BY `some_field`
)


使用 DISTINCT 只能用於某一欄或著某些欄位:
SELECT DISTINCT `some_field` FROM `some_table`
SELECT DISTINCT `some_field`, `another_field` FROM `some_table`
SELECT DISTINCT * FROM `some_table` (含主鍵的話,此行無用)

另外,計算重複的個數:
SELECT *, count(*) FROM `some_table` GROUP BY `some_field`

1 則留言:

aladdin 提到...

林老師,小小的更正一下:

select * from 'table_name' group by 'field_name' 應該不是一個能執行的sql敘述。要 select 'field_name', count(*) from 'table_name' group by 'field_name' 才能執行。

簡單說,所有不是 'field_name' 的欄位,都要有aggregating才能夠被放入group by的select敘述中...

FB 留言