2015-07-03 54 views
-1

我有一個包含兩個值的字段,以逗號分隔開,並BLOB存儲,比如EN這些例子:sqlite3的所適用的子字符串成團塊

values 
13,0 
0,120 
192,12 

我想創建一個SELECT查詢只吐奶取出逗號右側的值。

我需要將值BLOB轉換爲字符串以便能夠應用instr()substr()。我應該怎麼做?有人能幫助我嗎?

+1

的是[文件]的一部分(http://www.sqlite.org/lang_expr.html# castexpr)你不明白嗎? –

+0

許多部分@CL。例如,BLOB如何在substr函數上運行?我發現的唯一的事情是:「如果X是一個BLOB,那麼索引指的是字節。」,那麼我將如何選擇正確的索引 - 我只是不這樣做,這又是爲什麼我問 – dmeu

回答

0

在ASCII文本中,字節個字符。

但是,如果你想投一個BLOB值轉換成字符串,使用CAST expression

SELECT substr(CAST(MyBlob AS TEXT), ...) ... 
+0

我實際上已經嘗試過與此類似,但我得到的所有結果都是'x'。命令'select substr(cast(gt_alt_depths as TEXT),0,2)來自變體'。例如,如果我將索引更改爲1,2,則會出現以下錯誤:'SQLite錯誤:無法解碼爲UTF-8列'substr(使用文本'cast(gt_alt_depths作爲TEXT)','2' x '' – dmeu

+0

然後你對blob的內容所說的話是不正確的。顯示'SELECT hex(gt_alt_depths)FROM ...'的輸出。 –

+0

如果我用圖形界面打開.db文件,它說該字段的類型爲blob。入口看起來是這樣的,如果'十六進制()'應用:78DA6B604ACE2BCD2DA8D44BCE2F4AD5CB2DCD29C94C2C2A4AACE48A2F4A4DCECF2B2E292A4D2EE12A6484A8E2CA4B81C816327933B4863226B50715326B78337A33B54215A4945416A47215B28432659A783378330215B06A78338732DAF8F9F979FD070230E1CD5092D419CAC1C8C0C0C006C425497A000FFB2EF3 – dmeu

相關問題