2011-07-09 60 views
9

我正在嘗試搜索mysql中字符串的完全匹配。字符串是'nrew'。但是當我做下面的查詢時,我仍然得到一個結果:如何在mysql中搜索確切的字符串

SELECT UserID FROM sys_users WHERE UserID='NREW' 
SELECT UserID FROM sys_users WHERE UserID='NrEw' 

請幫忙。

回答

19
SELECT UserID FROM sys_users WHERE BINARY UserID='NREW' 
+0

作爲一個額外的注意,如果您在唯一的用戶帳戶名稱上匹配,請確保您也使用BINARY否則,不管特殊字符差異如何,像aimé.smith和aime.smith這樣的名稱被假定爲相同的值。 –

8

其MySQL用來進行比較是不區分大小寫的默認排序規則。您需要指定區分大小寫的排序規則或二進制文件。您可以在創建列時或在查詢中執行此操作。

例如:

SELECT UserID FROM sys_users WHERE UserID='NREW' COLLATE latin1_bin 

了適當的歸類取決於你的字符集。對於latin1,默認情況下,您可以使用latin1_bin。對於utf8,utf8_bin

3

一種方法是使用LIKE BINARY而不是=

SELECT UserID FROM sys_users WHERE UserID LIKE BINARY 'nrew'; 
5

您可以使用關鍵字二進制,

SELECT UserID FROM sys_users WHERE BINARY UserID='nrew' 

here