MYSQL在""之间选择多个值在专栏中

时间:2014-10-29 07:28:55

标签: mysql sql

我有一个返回

的列
a:2:{i:0;s:10:"Properties";i:1;s:14:"Movable Assets";}

我只想回来:

Properties, Movable Assets

如何使用select语句检索"之间的值?符号

3 个答案:

答案 0 :(得分:2)

这些是序列化值,您可以使用php来获得所需的结果。

您可以使用,unserialize将返回一个数组,然后您可以使用implode来获取逗号分隔值。

example

答案 1 :(得分:1)

使用SUBSTRING_INDEX()

SUBSTRING_INDEX()接受一个字符串参数,后跟一个分隔符和要返回的部分数。使用分隔符分解字符串后,该部分数量将作为单个字符串返回。

select concat( 
    SUBSTRING_INDEX( 
        SUBSTRING_INDEX( 
            SUBSTRING_INDEX( 
                'a:2:{i:0;s:10:"Properties";i:1;s:14:"Movable Assets";}',
                '"',
                4
            ),
            '"',
            2
        ),
        '"',
        -1
    ),
    ",",
    SUBSTRING_INDEX(
        SUBSTRING_INDEX( 
            SUBSTRING_INDEX(
                'a:2:{i:0;s:10:"Properties";i:1;s:14:"Movable Assets";}',
                '"',
                4
            ),
            '"',
            4
        ),
        '"',
        -1
    )
);

答案 2 :(得分:0)

使用LOCATE()SUBSTRING()的组合。

定义:https://dev.mysql.com/doc/refman/5.0/en/string-functions.html

或更好 - 将数据迁移到实际可检索的位置。