开发者

how to search for exact string in mysql

I'm trying to search for an exact match of a string in mysql. The string is 'nrew'. But when I d开发者_Python百科o the queries below, I still get a result:

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

Please help.


SELECT UserID FROM sys_users WHERE BINARY UserID='NREW'


The default collation which MySQL uses to make comparisons is case insensitive. You need to specify a case sensitive collation or binary. You can either do this when creating the column, or in the query.

For example:

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

The proper collation depends on your character set. For latin1, the default, you can use latin1_bin. For utf8, utf8_bin.


You can use keyword Binary,

SELECT UserID FROM sys_users WHERE BINARY UserID='nrew'

refer to here


One method is to use LIKE BINARY instead of =:

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


Give this is try: http://www.devx.com/tips/Tip/13043

Select UserID from sys_users where convert(varbinary, UserID) = convert(varbinary, 'NREW') 

Or try COLLATE

http://aspadvice.com/blogs/ssmith/archive/2007/09/30/Case-Sensitive-or-Insensitive-SQL-Query.aspx

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜