Zuk*_*ker 6 regex mysql json group-by
我有一个包含行的表,其中一行有一个包含这样数据的字段
{"name":"Richard","lastname":null,"city":"Olavarria","cityId":null}
Run Code Online (Sandbox Code Playgroud)
我想选择我所拥有的所有不同的"城市"价值观.只使用mysql服务器.
可能吗?我正在尝试这样的事情
SELECT id FROM table_name WHERE field_name REGEXP '"key_name":"([^"]*)key_word([^"]*)"';
Run Code Online (Sandbox Code Playgroud)
但我无法使正则表达式工作
提前致谢
Dmi*_*ryK 11
MySQL在版本5.7.7中支持JSON http://mysqlserverteam.com/json-labs-release-native-json-data-type-and-binary-format/ 您将能够有效地使用jsn_extract函数解析您的JSON字符串.
如果你有一个旧的版本,并且你想纯粹在mysql中解决它,那么我担心你必须把它当作一个字符串并从中削减它的价值(只是正常的字符串函数或使用正则表达式)这不是优雅但它将工作
http://sqlfiddle.com/#!9/97cfd/14
SELECT
DISTINCT(substring(jsonfield, locate('"city":',jsonfield)+8,
locate('","', jsonfield, locate('"city":',jsonfield))-locate('"city":',jsonfield)-8)
)
FROM
ForgeRock
Run Code Online (Sandbox Code Playgroud)