binary解决思路

binary

mysql> select ’50’ >= 50;

+————+

| ’50’ >= 50 |

+————+

| 1 | 

+————+

1 row in set (0.00 sec)

mysql> select ’50’ >= binary 50;

+——————-+

| ’50’ >= binary 50 |

+——————-+

| 1 | 

+——————-+

1 row in set (0.00 sec)

mysql> select ‘6’ > 50;

+———-+

| ‘6’ > 50 |

+———-+

| 0 | 

+———-+

1 row in set (0.00 sec)

mysql> select ‘6’ > binary 50;

+—————–+

| ‘6’ > binary 50 |

+—————–+

| 1 | 

+—————–+

1 row in set (0.00 sec)

select ‘6’ > binary 50; 这个为什么?



binary 50 

说明了 50 将是个字符串! 这样其实就是做的字符串比较。




是这样的,当不带binary时,默认将后者转化成前者来比较。

如:

mysql> select ’50’ = 50;

+———–+

| ’50’ = 50 |

+———–+

| 1 | 

+———–+

但是如果带了binary时,那将会把前者转化成binary值进行比较

mysql> select ‘6’ > binary 50

-> ;

+—————–+

| ‘6’ > binary 50 |

+—————–+

| 1 | 

+—————–+

1 row in set (0.00 sec)

这相当于比较select 54 > 50

‘6’的二进制表示是36,即十进制的54

binary解决思路

相关文章:

你感兴趣的文章:

标签云: