2013-12-19 21 views
1
SET @var = b'01011010'; 
SELECT BIN(@var); 

請注意,01011010 =='Z';MySql使用位域文字又名二進制數字

返回:

+-----------+ 
| BIN(@var) | 
+-----------+ 
| 0   | 
+-----------+ 

的MySQL manual狀態:

「位值返回爲二進制值要在可打印的形式顯示它們,添加0或使用轉換函數如BIN()。 「

爲什麼會發生這種轉換功能不能正常工作,真正得到‘Z’,所有你需要做的是選擇@var:

SELECT @var; 
+------+ 
| @var | 
+------+ 
| Z | 
+------+ 

回答

1

你可以試試嗎?

mysql> SELECT BIN(ORD(@var)); 
+----------------+ 
| BIN(ORD(@var)) | 
+----------------+ 
| 1011010  | 
+----------------+ 
1 row in set (0.00 sec) 

BIN()接受數字類型。所以你需要將z轉換爲90

mysql> SELECT @var, ORD(@var), BIN('Z'), BIN(90); 
+------+-----------+----------+---------+ 
| @var | ORD(@var) | BIN('Z') | BIN(90) | 
+------+-----------+----------+---------+ 
| Z |  90 | 0  | 1011010 | 
+------+-----------+----------+---------+ 
1 row in set (0.00 sec) 
+0

它可以變成正常的,但我想了解他們是如何從本節得到的值:http://dev.mysql.com/doc/refman/5.7/en/bit-field-literals。 HTML –

相關問題