从字符串sql提取数据

问题描述

select  regexp_extract(page,':old:yes:([^:]+)',1)
from    pages
where   page like '%:old:yes:%'
+--------+
| age    |
| hour   |
| minute |
+--------+

解决方法

如果此数据位于名为“
pages”的列中,并且我希望具有’:old:yes:’的每一行都返回’yes:’之后和下一个字符串之前的字符串,那么regexp_extract将会如何变化?

PAGES(表名)

hello:ok:old:yes:age:test:jack   
hello:no:old:yes:hour:black:nancy   
hi:fine:old:yes:minute:white:jason

如您所见’:old:yes:’是我的出发点,我希望regexp_extract返回冒号之前的下一个文本。在上面的示例中,我想要以下结果:

age  
hour  
minute