我有以下内容:
id | value
1 | abc:432:xyz
2 | 678:123:iop
喜欢得到:
id | valueA | valueB | valueC
1 | abc | 432 | xyz
2 | 678 | 123 | iop
这可以通过sql查询吗? THX!
答案 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