尝试将regex应用于select查询中的列

时间:2016-04-26 09:23:51

标签: mysql json regex

我将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列转换为字符串,然后再使用正则表达式?

任何帮助将不胜感激!

谢谢,

萨姆

1 个答案:

答案 0 :(得分:0)

您可以使用replacesubstring_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值不存在: