比如一张表有两个列,一个id,一个action
id中会出现多个id比如 1045,2046,2563, 以逗号分割
请问如何拆分它成为3行,即
id        action
1045       ...
2046       ...
2563       ...

解决方案 »

  1.   

    搜索数据中数据得到一个数组$id[],用explode(",",$id[])拆开。
      

  2.   

    用substring_index吧:
    取第一个:
    substring_index(id,',',1)
    取最后个:
    substring_index(id,',',1)
    取第n个:
    substring_index(substring_index(id,',',n),',',-1)
      

  3.   

    呵呵刚写的有点错误,取最后一个语句应该是
    substring_index(id,',',-1)
      

  4.   

    SUBSTRING(str FROM pos) 
    从字符串str的起始位置pos返回一个子串。 
    mysql> select SUBSTRING(Quadratically,5); 
            -> ratically 
    mysql> select SUBSTRING(foobarbar FROM 4); 
            -> barbar 该函数是多字节可靠的。 SUBSTRING_INDEX(str,delim,count) 
    返回从字符串str的第count个出现的分隔符delim之后的子串。如果count是正数,返回最后的分隔符到左边(从左边数) 的所有字符。如果count是负数,返回最后的分隔符到右边的所有字符(从右边数)。 
    mysql> select SUBSTRING_INDEX(www.mysql.com, ., 2); 
            -> www.mysql 
    mysql> select SUBSTRING_INDEX(www.mysql.com, ., -2); 
            -> mysql.com 该函数对多字节是可靠的。