MySQL从一个值字段中分离并选择值

时间:2013-10-22 10:45:55

标签: mysql separator

我有以下内容:

id | value
1 | abc:432:xyz
2 | 678:123:iop

喜欢得到:

id | valueA | valueB | valueC
1 | abc | 432 | xyz
2 | 678 | 123 | iop

这可以通过sql查询吗? THX!

4 个答案:

答案 0 :(得分:2)

可以使用sql查询:

SELECT id,SUBSTRING_INDEX(`value`, ':', 1) AS valueA ,
SUBSTRING_INDEX(SUBSTRING_INDEX(value,':',2),':',-1) AS valueB ,  SUBSTRING_INDEX(SUBSTRING_INDEX(value,':',-2),':',-1) AS valueC 
FROM   tablename;

答案 1 :(得分:0)

一种方法是在阅读查询结果后将它们分开!

查询:

$this->db->query("select id, value from tablename");

PHP中的示例(可以是任何内容):

foreach($resultRecord as $record){
    $segment = explode(":",$record->value);
    echo "<tr>";
    echo "<td>".$record->id;
    for($i=0;$i<count($segment);i++){
       echo "<td>".$segment[i];
    }
}

答案 2 :(得分:0)

SELECT id, 
       SUBSTRING_INDEX(`value`, ':', 1) as valueA, 
       SUBSTRING(`value`,5,3) as valueB, 
       SUBSTRING(`value`,9) as valueC 
          FROM Table_name

使用以上查询。

答案 3 :(得分:0)

使用此

将table test2作为SELECT id,substr(value,1,3)作为valueA,substr(value,5,3)作为valueB,substr(value,9,3)作为valueC FROM test