2014-03-24 162 views
0

我正試圖清理一些我從熊貓數據框導入到MySQL中的數據。當我使用MySQL SELECT DISTINCT不區分大小寫?

SELECT DISTINCT 

Variable 

似乎MySQL的對待Variable作爲equivilent到變量:

一些顯示爲:

VARIABLE 

別人的。

雖然R將Variable和VARIABLE視爲不同,但我將其導入到R中。 運行

as.factor 

給了我兩個因素。 如何讓MySQL的SELECT DISTINCT區分大小寫,以便我可以檢測並修復導入到R中的數據進行分析?

+0

您可能正在使用不區分大小寫的排序規則。你想要一個大小寫敏感的。請閱讀此處:http://dev.mysql.com/doc/refman/5.7/en/charset-collat​​e.html。 –

+0

[使用'在這個SO後看到'BINARY'](http://stackoverflow.com/questions/19462919/mysql-select-distinct-should-be-case-sensitive) –

+0

我把一切都設置爲UTF-8更早在熊貓代碼中如此BINARY blob的一切。我想我會考慮將MySQL COLLATION切換爲默認情況下區分大小寫。命令行上的任何指針? – KillerSnail

回答

0

如果你想檢測下限和上限的情況下這是在你的表使用此

SELECT name      //this to select lower names 
    FROM yourtable 
    where name = BINARY LOWER(Name) 

    union all 

    SELECT name      //this to select upper names 
    FROM yourtable 
    where name = BINARY UPPER(Name) 

    union all      // this to select not lower and not upper 

    SELECT name 
    FROM yourtable 
    where name != BINARY UPPER(Name) 
    and name != BINARY LOWER(Name) 

DEMO HERE

0

你可以只使用:

SELECT DISTINCT BINARY Name 
FROM tablename 

BINARY運營商將蒙上一層字符串轉換爲BINARY字符串,並且二進制字符串之間的比較將區分大小寫。