2016-04-21 18 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

相关问题