2012-09-07 64 views
2

每當我嘗試:SELECT mysql SET column as BIT STRING?

SELECT column1 FROM table1; 

我得到的結果作爲逗號分隔字符串(COLUMN1的類型是set):

'result4,result7,result24' 
'result2,result15,result36' 

等等

由於MySQL的設置類型,只是一個64位字符串AFAIK - 我將如何獲得值位串/位掩碼?

SELECT function_that_converts_to_bit_string(column1) FROM table1; 

那麼結果將是:

100100101110000101110 
101000110110000101110 
100001111100110001110 
... 

回答

1
select bin(cast(column1 as decimal)) from table1; 
+1

mysql仍然輸出值列表而不是零和值... – zzz

+0

我在SQLfiddle中嘗試過它,但它顯示數字,儘管它們是十進制的。但我只是編輯它以二進制顯示。 – Barmar

+1

是的。這很好。 SELECT 1(column1 + 0)from table1 ;.謝謝! – zzz

0

什麼是列1數據類型和整理?

有一種二進制數據類型(BINARY本身或BLOB),您可以使用它來獲取二進制數據。還應該將排序規則設置爲任何值(latin1,utf-8等)。bin不管是不區分大小寫(-ci)還是區分大小寫(-cs)變體,都使用您使用的任何歸類集的二進制排序規則。

+0

column1的類型是SET – zzz

+0

道歉,我沒有在OP中看到它......整理過程如何? – EffectiX

+0

utf8-general-ci ... alhough - 不確定這是否與設置類型相關。 – zzz