2012-01-21 88 views
0

我有一個表格,其中有二進制類型的列。mysql&select into OUTFILE - 將二進制數據寫入文件

---------------+---------+----------+-------------+ 
| appid | imei    | request_timestamp | city_id | state_id | country_id | 
+-------+------------------+-------------------+---------+----------+------------+-----------+ 
| 45861 | 101111000110  |  1327119595 |  700 |  43 |   5  | 
| 93502 | 1000011001010 |  1327119595 |  305 |  490 |   9 |  | 
+-------+------------------+-------------------+---------+----------+------------+------- 

SELECT * INTO OUTFILE 'test.txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED 
BY '\n' FROM log_track_tbl_382 ,the csv file has data in the form 

45861,"101111000110\0\0\0\0",1327119595,700,43,5 
93502,"1000011001010\0\0\0",1327119595,305,490,9 

二進制列不以正確的格式寫入txt文件。 任何人都可以建議什麼應該是適當的mysql命令來保存文件中的二進制數據。 當我從MySQL提示運行此命令

+5

請修復此格式的暴行。如果它太大而不適合放在屏幕上,那麼它可能太大而不能包含在內。簡化你的例子到最小的情況下舉例說明問題。 (它也可能有助於您自己的調試!) –

+1

請定義「不正確的格式」的含義。你得到了什麼,你期望什麼? – deceze

+0

二進制存在數據mysql在文本文件中不相同。表中存在的列值爲101111000110,文本文件中的值類似於101111000110 \ 0 \ 0 \ 0 \ 0。 –

回答

3

嘗試使用DUMPFILE代替OUTFILE

通過OUTFILE選擇此選項會導致查詢結果寫入單行,省略列或行終止。這在導出二進制數據(如圖形或Word文件)時非常有用。請記住,導出二進制文件時不能選擇OUTFILE,否則文件將被損壞。

注意一個DUMPFILE查詢必須以單行爲目標;結合來自兩個二進制文件的輸出沒有任何意義,並且如果嘗試它,則會返回錯誤。