我将JSON存储在MySQL数据库(版本5.6.17)中,我正在尝试将其复制到列中以检索广告系列ID列表。我的查询如下:
SELECT JSON REGEXP '"id":([0-9]*)' AS id
FROM PROD_APPNEXUS.dimension_json_creatives;
其中JSON是一个包含我需要解析为ID的数据的列。我知道REGEXP可用于SELECT查询中的字符串(即SELECT'foobar'REGEXP'([a-z] +)'AS foobar)但是列可以以相同的方式进行模式匹配吗?
是否有办法将JSON列转换为字符串,然后再使用正则表达式?
任何帮助将不胜感激!
谢谢,
萨姆
答案 0 :(得分:0)
您可以使用replace
和substring_index
拆分列,就像这样;)
SELECT replace(substring_index(JSON, ':', -1), '"', '') AS id
FROM PROD_APPNEXUS.dimension_json_creatives;
当我在下面运行sql返回 aaaa 时,
select replace(substring_index('"id":"aaaa"', ':', -1), '"', '');
我认为您的JSON值不存在:
。