我有tbl,其中包括2列:title和params,其值如下所示:
标题:{“ Teaching”}
参数:
{“ ufield926”:“ 34”,“ ufield927”:“ Sud”,“ ufield928”:“ Ara”,“ ufield929”:“麦加”,“ ufield930”:“ 1/1/1983”,“ ufield933”:“ 011”,“ ufield934”:“ Mub”,“ ufield943”:“ SU / HI / 14”,“ ufield944”:“ Average”,“ ufield946”:“ Female”}我想在“ ufield943”之后提取代码:仅限于SU / HI / 14,并将其与标题列中的值连接起来,如下所示:
->教学(SU / HI / 14)
这是我尝试过的查询:
SELECT CONCAT(title, "(", (select
substring(
params,
locate('ufield943', params) + 12,
locate('ufield944', params) - locate('ufield943', params) - 21
) FROM tbl), ")") AS title
FROM tbl;
每次运行查询时,都会收到以下错误
“#1242-子查询返回多于1行”
我{"..."}
与SUBSTRING
和CHAR_LENGTH
函数一起从标题中删除。
我更改- 21
为- 16
并在之前添加空间(
SELECT CONCAT(substring(title, 3,CHAR_LENGTH(title) - 4 ), " (",
substring(
params,
locate('ufield943', params) + 12,
locate('ufield944', params) - locate('ufield943', params) - 16
), ")") AS Title
FROM tbl;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句