sql选择列中两个字符串之间的字符串

时间:2017-01-31 23:04:03

标签: mysql sql search opencart

我有一个表例如 - TABLE。在表中是列名 - CUSTOME_FIELDS。在这一栏中我有这样的数据:

{"6":"Name of company","1":"11111111","2":"564974195","4":"","5":"","3":""}

我需要 - 公司名称 - 并将其提交给新专栏 - NEW_COLUMN。

我该怎么做?我试过这样的事情:

SELECT SUBSTRING(CUSTOME_FIELDS, CHARINDEX('"6":"', CUSTOME_FIELDS), CHARINDEX('","1"',CUSTOME_FIELDS)) FROM TABLE

但它没有用。

3 个答案:

答案 0 :(得分:2)

如果你的MySQL版本是5.7或更高版本,并且因为数据看起来是CenterOfMap <- geocode("39.805157, -122.557298") California <- get_map(c(lon=CenterOfMap$lon, lat=CenterOfMap$lat), zoom=6, maptype = "satellite", source="google") CaliforniaMap <- ggmap(California) CaliforniaMap 格式,你可以试试JSON的运气:

json_extract

Demo link

答案 1 :(得分:2)

如果您要在数据库中存储JSON数据,请使用MySQL 5.7或更高版本并使用JSON column type。这意味着您可以轻松提取数据:

SELECT JSON_EXTRACT(json_data, '$."6"') FROM mytable;

答案 2 :(得分:0)

取决于您的实际数据的外观如何:

如果你的数据看起来像上面那样,那么你可以从 {“6”:“和下一个”,“

中剪切字符串
SELECT substring_index(
    substring_index(CUSTOME_FIELD, '{"6":"', -1),
    '","',
    1
)