将SQL返回的数据分解为更多字段

时间:2011-11-16 01:56:26

标签: php mysql

我有来自SQL表的输出:

array{
   "data" => "line1
line2
line3"
}

我正在使用类似此查询的内容:SELECT data FROM table WHERE ...;

我可以以某种方式使这个SQL查询返回:

array{
   "data1" => "line1",
   "data2" => "line2",
   "data3" => "line3",
}

3 个答案:

答案 0 :(得分:2)

简短的回答是:不,在PHP中做得更好:

list($the_array['data1'], $the_array['data2'], $the_array['data3']) =
explode("\n", $the_array['data'], 3);

答案越长(或越短):请参阅this question of mine并浏览链接。

答案 1 :(得分:1)

我认为这里的主要问题是您将数据存储在数据库中的方式。您真的不想在一个字段中存储多个数据。数据需要更好地规范化,然后您不会首先遇到此问题。查看Database Normalisation

但如果您不想更改数据结构,可以使用php中的explode函数

$lineArray = explode("\n",$data);

但我建议您仔细查看您正在使用的数据库结构。

答案 2 :(得分:0)

我不知道任何SQL。 替代方案:在PHP中打破。

$arr= explode("\n", $result['data']); // \n or space or \r\n 
$i = 0;
foreach($arr as $line){
$i++;
   $final[$i] = $line;
}