2

我有以下内容:

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

并喜欢得到:

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

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

4

4 回答 4

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;
于 2013-10-22T11:01:43.627 回答
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];
    }
}
于 2013-10-22T11:00:32.317 回答
0
SELECT id, 
       SUBSTRING_INDEX(`value`, ':', 1) as valueA, 
       SUBSTRING(`value`,5,3) as valueB, 
       SUBSTRING(`value`,9) as valueC 
          FROM Table_name

使用上面的查询。

于 2013-10-22T11:04:31.837 回答
0

用这个

创建表 test2 作为 SELECT id,substr(value,1,3) as valueA,substr(value,5,3) as valueB,substr(value,9,3) as valueC FROMtest

于 2013-10-22T11:56:07.533 回答