有没有办法通过mysql查询或函数/过程从JSON格式获取值?

时间:2015-09-22 08:16:03

标签: mysql json

有没有办法从JSON格式获取存储在数据库字段中的值。

我曾尝试过如下,但有时会返回错误的值,并且似乎无法正确获取记录。 实际上我正在尝试添加所有尺寸

    SELECT 
    substring_index(substr(size,locate('"xs":"',size)+char_length('"xs":"')),'"',1)+
     substring_index(substr(size,locate('"s":"',size)+char_length('"s":"')),'"',1)+ 
    substring_index(substr(size,locate('"m":"',size)+char_length('"m":"')),'"',1)+ 
    substring_index(substr(size,locate('"l":"',size)+char_length('"l":"')),'"',1)+ 
    substring_index(substr(size,locate('"xl":"',size)+char_length('"xl":"')),'"',1)+ 
    substring_index(substr(size,locate('"xxl":"',size)+char_length('"xxl":"')),'"',1)+ substring_index(substr(size,locate('"xxxl":"',size)+char_length('"xxxl":"')),'"',1)+ 
    substring_index(substr(size,locate('"xs\/s":"',size)+char_length('"xs\/s":"')),'"',1)+ substring_index(substr(size,locate('"m\\/l":"',size)+char_length('"m\\/l":"')),'"',1)+ 
substring_index(substr(size,locate('"xl\\\/xxl":"',size)+char_length('"xl\\\/xxl":"')),'"',1) 

    as qty FROM `table_name` 

我还参考了从下面的StackOverflow问题中的字符串中捕获数值: How do you extract a numerical value from a string in a MySQL query?

它返回正确的值,我可以添加返回值,但对于2位数字,这对我不好(如果它返回15,所以对我的情况是6)

0 个答案:

没有答案