我正在嘗試搜索mysql中字符串的完全匹配。字符串是'nrew'。但是當我做下面的查詢時,我仍然得到一個結果:如何在mysql中搜索確切的字符串
SELECT UserID FROM sys_users WHERE UserID='NREW'
SELECT UserID FROM sys_users WHERE UserID='NrEw'
請幫忙。
我正在嘗試搜索mysql中字符串的完全匹配。字符串是'nrew'。但是當我做下面的查詢時,我仍然得到一個結果:如何在mysql中搜索確切的字符串
SELECT UserID FROM sys_users WHERE UserID='NREW'
SELECT UserID FROM sys_users WHERE UserID='NrEw'
請幫忙。
SELECT UserID FROM sys_users WHERE BINARY UserID='NREW'
給這個嘗試:http://www.devx.com/tips/Tip/13043
Select UserID from sys_users where convert(varbinary, UserID) = convert(varbinary, 'NREW')
或者嘗試COLLATE
http://aspadvice.com/blogs/ssmith/archive/2007/09/30/Case-Sensitive-or-Insensitive-SQL-Query.aspx
其MySQL用來進行比較是不區分大小寫的默認排序規則。您需要指定區分大小寫的排序規則或二進制文件。您可以在創建列時或在查詢中執行此操作。
例如:
SELECT UserID FROM sys_users WHERE UserID='NREW' COLLATE latin1_bin
了適當的歸類取決於你的字符集。對於latin1
,默認情況下,您可以使用latin1_bin
。對於utf8
,utf8_bin
。
一種方法是使用LIKE BINARY
而不是=
:
SELECT UserID FROM sys_users WHERE UserID LIKE BINARY 'nrew';
作爲一個額外的注意,如果您在唯一的用戶帳戶名稱上匹配,請確保您也使用BINARY否則,不管特殊字符差異如何,像aimé.smith和aime.smith這樣的名稱被假定爲相同的值。 –