私は次のものを持っています:
id | value
1 | abc:432:xyz
2 | 678:123:iop
そして取得したい:
id | valueA | valueB | valueC
1 | abc | 432 | xyz
2 | 678 | 123 | iop
これはSQLクエリで可能ですか? どうも!
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 つの方法は、クエリの結果を読んだ後にそれらを分離することです!
クエリ:
$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];
}
}
SELECT id,
SUBSTRING_INDEX(`value`, ':', 1) as valueA,
SUBSTRING(`value`,5,3) as valueB,
SUBSTRING(`value`,9) as valueC
FROM Table_name
上記のクエリを使用します。
これを使って
テーブル test2 を SELECT id として、substr(value,1,3) を valueA として、substr(value,5,3) を valueB として、substr(value,9,3) を valueC FROM として作成します。test