【发布时间】:2013-10-31 04:39:21
【问题描述】:
我有以下几点:
id | value
1 | abc:432:xyz
2 | 678:123:iop
又想得到:
id | valueA | valueB | valueC
1 | abc | 432 | xyz
2 | 678 | 123 | iop
这可以通过sql查询吗? 谢谢!
【问题讨论】:
我有以下几点:
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;
【讨论】:
一种方法是在阅读查询结果后将它们分开!
查询:
$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
使用上面的查询。
【讨论】:
使用这个
create table test2 as SELECT id,substr(value,1,3) as valueA,substr(value,5,3) as valueB,substr(value,9,3) as valueC FROM test
【讨论】: