我有一个包含2列的表:title和param,其值如下:
-标题:Teaching
-参数:
{"ufield926":"34","ufield927":"Sud","ufield928":"Ara","ufield929":"Mecca",
"ufield930":"1\/1\/1983","ufield933":"011","ufield934":"Mub",
"ufield943":"SU\/HI\/14","ufield944":"Average","ufield946":"Female"}
我想提取"ufield943":
之后的仅SU\/HI\/14
之后的代码,并将其与标题列中的值连接起来,如下所示:
Teaching (SU\/HI\/14)
答案 0 :(得分:0)
尝试此查询:
select *,
substring(
params,
locate('ufield943', params) + 12,
locate('ufield944', params) - locate('ufield943', params) - 15
)
from tbl;
但是我假设ufield944
紧接在ufield943
之后。
答案 1 :(得分:0)
constructor(private route: ActivatedRoute) {
this._private = this.route.snapshot.data['isPrivate'];
}
中的值为JSON,所以最好的解决方案可能是查看MySQL JSON support。
我对MySQL JSON支持不熟悉,如果那对您不起作用,我会看一下MySQL的REGEXP_SUBSTR和REGEXP_REPLACE来做到这一点:
params
regex会发现该值,而不管它在json中的位置如何,并允许在列中使用空格(例如SELECT
title
REGEXP_REPLACE(
REGEXP_SUBSTR(params, '"ufield943"[[:space:]]*:[[:space:]]*"([^"\\]|\\.)+'),
'^"ufield943"[[:space:]]*:[[:space:]]*"', '')
FROM MyTable
)。