tags:

views:

50

answers:

3

I have an SQL statement:

SELECT * FROM customers WHERE BINARY login='xxx' AND password='yyyy'

There are no blob/binary fields in the table, do I need the BINARY after the WHERE what else does it do?

+2  A: 

BINARY is a built-in keyword that after your WHERE clause that forces a comparison for an exact case-sensitive match.

As a side note, you can also make columns case-sensitive by adding the BINARY keyword when you create your table.

Anthony Forloney
A: 

http://dev.mysql.com/doc/refman/5.0/en/charset-binary-op.html

The BINARY operator casts the string following it to a binary string. This is an easy way to force a comparison to be done byte by byte rather than character by character. BINARY also causes trailing spaces to be significant.

DVK
A: 
SELECT 'user' = 'UsEr' // true
SELECT BINARY 'user' = 'UsEr' // false
TiuTalk