如何在mysql中搜索确切的字符串

时间:2011-07-09 03:52:01

标签: mysql collation case-sensitive

我正在尝试在mysql中搜索字符串的完全匹配。字符串是'nrew'。但是当我进行下面的查询时,我仍然得到一个结果:

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

请帮忙。

5 个答案:

答案 0 :(得分:22)

SELECT UserID FROM sys_users WHERE BINARY UserID='NREW'

答案 1 :(得分:8)

MySQL用于进行比较的默认排序规则不区分大小写。您需要指定区分大小写的排序规则或二进制文件。您可以在创建列时或在查询中执行此操作。

例如:

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

正确的整理取决于您的字符集。对于默认的latin1,您可以使用latin1_bin。对于utf8utf8_bin

答案 2 :(得分:5)

您可以使用关键字Binary,

SELECT UserID FROM sys_users WHERE BINARY UserID='nrew'

参考here

答案 3 :(得分:3)

一种方法是使用LIKE BINARY代替=

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

答案 4 :(得分:1)

这是尝试: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