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

1 つの方法は、クエリの結果を読んだ後にそれらを分離することです!

クエリ:

$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) を valueA として、substr(value,5,3) を valueB として、substr(value,9,3) を valueC FROM として作成します。test

于 2013-10-22T11:56:07.533 に答える