mysql - 解析mysql中的字段正则表达式

标签 mysql regex parsing

我的 mysql 数据库中有一个大表。在此表中,一列包含我拥有的所有内容的元数据。该值相当长,我需要提取所有视频的持续时间。这是该字段的摘录:

{"progress":100,"id":"10","duration":4285,"audio":[],"status":"published" ..... 

我需要处理“持续时间”之后的值:

该值可以从 1 开始,最大为 10000。

我该怎么办?

最佳答案

尝试这样的事情:

SELECT SUBSTRING(
 substr, 
 LOCATE(':', substr) + 1,
 LOCATE(',', substr) - LOCATE(':', substr) -1) as duration FROM 
(SELECT SUBSTRING(column, LOCATE('"duration":', column)) substr
 FROM log_debug WHERE column REGEXP '\"duration\":')  as foo;

对于具有持续时间字段的所有行,内部选择获取从“duration”开始并跨越整个字符串末尾的子字符串(如果需要,可以在 where 中添加更多条件)。

然后,外部选择会获取一个从第一个“:”之后开始并在“,”之前结束的子字符串

关于mysql - 解析mysql中的字段正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32866150/

相关文章:

MySQL - 按某些 "tags"选择,包括所有标签

PHP 导入 csv 不工作

python - 通过多个正则表达式对 DataFrame 列进行排序

java - SimpleDateFormat,需要文本月份

javascript - Node.js中的Webscraper,JS修改DOM

php - 如何根据php中的两个值查找排名?

mysql - SQL INSERT 是否涉及任何读/写锁?

html - 用于查找不在超链接内的 URL 的正则表达式

windows - awk 和 WinGrep 中的正则表达式

xml - 使用 shellscript 在 XML 中搜索字符串或数字时获取父标记