sobota, 17 marca 2012

Mysql Case Binary

Today I've discovered how usefull can be binary operator ;)
I will show how to use it, with 'case' operator.
The main difference between normal case and binary is that Case binary check the binary value of argument.
Let's see that on exaples:
mysql> SELECT CASE  'A'  WHEN 'a' THEN 1 WHEN 'A' THEN 2 END;
+------------------------------------------------+
| CASE  'A'  WHEN 'a' THEN 1 WHEN 'A' THEN 2 END |
+------------------------------------------------+
|                                              1 | 
+------------------------------------------------+

mysql> SELECT CASE BINARY 'A'  WHEN 'a' THEN 1 WHEN 'A' THEN 2 END;
+------------------------------------------------------+
| CASE BINARY 'A'  WHEN 'a' THEN 1 WHEN 'A' THEN 2 END |
+------------------------------------------------------+
|                                                    2 | 
+------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT CASE  'HoMe'  WHEN 'HOME' THEN 1 WHEN 'HoMe' THEN 2 END;
+---------------------------------------------------------+
| CASE  'HoMe'  WHEN 'HOME' THEN 1 WHEN 'HoMe' THEN 2 END |
+---------------------------------------------------------+
|                                                       1 | 
+---------------------------------------------------------+
1 row in set (0.01 sec)

mysql> SELECT CASE BINARY 'HoMe'  WHEN 'HOME' THEN 1 WHEN 'HoMe' THEN 2 END;
+---------------------------------------------------------------+
| CASE BINARY 'HoMe'  WHEN 'HOME' THEN 1 WHEN 'HoMe' THEN 2 END |
+---------------------------------------------------------------+
|                                                             2 | 
+---------------------------------------------------------------+
1 row in set (0.00 sec)
So as you can see, no need to apply addition lower() and upper() function to compare strings.
If you wanna learn something more about binary operator see manual
http://dev.mysql.com/doc/refman/5.0/en/charset-binary-op.html

Brak komentarzy:

Prześlij komentarz