How to get values from MySQL(5.6) column if that contains json document as string

前端 未结 10 704
萌比男神i
萌比男神i 2020-12-02 18:48

How to get values from MySQL(5.6) column if that contains JSON document as a string

For example, if we have a table - employee in that we have three columns id, nam

10条回答
  •  猫巷女王i
    2020-12-02 19:37

    Below answer works for me. it remove double quotes from the value.

    DELIMITER $$
    
    DROP FUNCTION IF EXISTS `json_extract_values`$$
    
    CREATE DEFINER=`root`@`localhost` FUNCTION `json_extract_values`(
      details TEXT,
      required_field VARCHAR (255)
    ) RETURNS TEXT CHARSET latin1
    BEGIN
    SET details = SUBSTRING_INDEX(details, "{", -1);
    SET details = SUBSTRING_INDEX(details, "}", 1);
    RETURN 
        SUBSTRING_INDEX(
            TRIM(
                TRAILING '"' FROM 
                    SUBSTRING_INDEX(
                        details,
                        CONCAT( 
                               '"', 
                               SUBSTRING_INDEX(required_field,'$.', - 1),
                               '":'
                              ),
                    -1 )
                ),
            '"',
         -1);    
    END$$
    
    DELIMITER ;
    

提交回复
热议问题