2014-03-13 29 views
4

我有這樣的一個表:MySQL的:「GROUP BY」不失標記

name 
Smith 
Smith 
Perez 
Pérez 

我想消除像史密斯重複,但保留兩個佩雷斯和佩雷斯(E和E)。 如果我使用'group by',我會得到兩排(Smith和兩個Perez /Pérez之一),但是我想得到三排(Smith,Perez,Pérez)。 它發生合併乾燥和乾燥等相同 感謝

+0

你使用什麼字符集/校對? – Strawberry

+3

我認爲更改排序規則到您的語言將有助於 – Alexander

+0

我正在使用utf8/utf8_general_ci –

回答

1

1)首先檢查你的表,如果它與

select table_name,engine 
from information_schema.tables 
where table_schema = 'your_database' 

2 UTF8字符集編碼)其次,如果不是比(否則跳過到第3步),改變你的表(UTF8編碼字符集,因此它將支持特殊字符)

ALTER TABLE `name` CHARACTER SET utf8; 

3)從UTF8字符集你的數據庫選擇

select * from your_table group by name collate utf8_general_ci 
+0

我試過,沒有工作。不管怎麼說,還是要謝謝你。 –

+0

所以你把你的表格改爲utf charset 8? –

+0

'utf8_general_ci'在e和é之間沒有區別。你需要'unicode'支持。 – DanFromGermany

1

嘗試使用utf8_unicode_ci而不是utf8_general_ci - 它使用更準確的比較算法。

+0

更妙的是:'utf8mb4_unicode_ci' – DanFromGermany

+0

我嘗試使用utf8_unicode_ci和E和E之間仍然沒有區別。然後我嘗試使用utf8mb4_unicode,並得到了相同的結果:Perez和Pérez仍然被認爲是相同的。 –