我的 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/