2016-04-21 17 views
0

我在列b中有以下數據,它是表x的一部分。如何從mysql中的字符串變量中提取時間戳

Table x Column b 
       {"op":"&","c":[{"type":"date","d":">=","t":1459756800}],"showc":[true]}   
       {"op":"&","showc":[true],"c":[{"type":"date","d":">=","t":1460534400}]} 

我試圖使用下面的查詢表來提取我的數據,但不起作用,因爲時間戳在不同的位置。

  SELECT substring(Column b, 44 , 10) 
      FROM Table x 

我將如何去提取只是時間戳。 大加讚賞

回答

1

這個答案是MySQL < 5.7,似乎5.7添加JSON支持

本地查詢不支持JSON解析,如果你試圖解析此列作爲一個字符串,它會導致各種麻煩。問題的例子就是在時間戳的值配置由於不同的禮儀,字符串長度等的差異

您需要添加JSON解析的支持無論是通過腳本(PHP,...)或增強MySQL的功能

我從來沒有使用它,但共同模式可以幫助你。我相信,還有其他的方式從http://mechanics.flite.com/blog/2013/04/08/json-parsing-in-mysql-using-common-schema/ https://code.google.com/archive/p/common-schema/

用例:

mysql> select common_schema.extract_json_value(f.event_data,'/age') as age, 
    -> common_schema.extract_json_value(f.event_data,'/gender') as gender, 
    -> sum(f.event_count) as event_count 
    -> from json_event_fact f 
    -> group by age, gender; 
+0

感謝@ user3802077它在mysql中工作過,其不幸的是,我使用的報表工具不支持JSON解析功能 – Chaa22

相關問題