【问题标题】:Matrix select from database从数据库中选择矩阵
【发布时间】:2015-10-07 19:08:10
【问题描述】:

我正在尝试从表中接收信息,这些信息将被分成几组使用。
我想知道是否有办法在某种 3d 矩阵中接收这些数据。
我在 php 和 oracle sql developer 中编写此代码,但即便如此我也可以在 php 中轻松完成,如果这些信息更加“有条理”,我将不胜感激。
示例:
假设数据通常会这样从数据库中出来。

$m = array  
(
  array("field1"=>1, "field2"=>'1', "field3"=> somedata),  
  array("field1"=>1, "field2"=>'2', "field3"=> somedata), 
  array("field1"=>2, "field2"=>'3', "field3"=> somedata),  
  array("field1"=>2, "field2"=>'4', "field3"=> somedata),  
  array("field1"=>2, "field2"=>'5', "field3"=> somedata)  
);

我希望它是这样出来的:

$m = array
(
  array("1" =>  $m = array  
  (
    array("field2"=>'1', "field3"=> somedata),  
    array("field2"=>'2', "field3"=> somedata)
  )),
  array("2" =>  $m = array  
  (
    array("field2"=>'3', "field3"=> somedata),  
    array("field2"=>'4', "field3"=> somedata),
    array("field2"=>'5', "field3"=> somedata)
  ))
);

我不知道我是否已经说清楚了,但希望我可以使用某些列或信息作为参数以任何类型的块接收这些数据,我可以更轻松地处理这些信息的任何方式php,因为我必须执行循环才能将这些数据拆分为子数组。 无论如何,感谢您的帮助,对英语感到抱歉
PS:只是为了澄清一点:
通常我会以这种方式访问​​一些数据(直接来自数据库,无需任何处理):

$ar[0]['field1'];//value 2
$ar[0]['field2'];//some value
$ar[1]['field1'];//value 2
$ar[1]['field2'];//some value
$ar[3]['field1'];//value 3
$ar[3]['field2'];//some value

我想,有点,直接从选择的返回中接收这个,分组,在另一个“索引”中。我会这样访问它:

$ar[0]['field1'][0]; 
//would return the same as this($ar[0]) from the example above
$ar[0]['field1'][1]; 
//would return the same as this($ar[2]) from the example above
$ar[1]['field1'][0]; 
//would return the same as this($ar[3]) from the example above

【问题讨论】:

  • 数据以行和列的形式返回。之后你如何处理它取决于你。
  • 是的,但我的意思是我想从选择中接收它作为 3d 矩阵。收到后更改确实很容易,取决于我,我的问题是我是否可以让 select 的返回值接近我写的示例

标签: php sql oracle select matrix


【解决方案1】:

如果您使用的是 Oracle,您可以使用 ROLLUP 和 CUBE,它们提供了小计。 然后,您可以按顺序对详细信息进行排序和处理。 问候, 何塞

【讨论】:

    猜你喜欢
    • 2015-05-20
    • 1970-01-01
    • 1970-01-01
    • 2019-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-10
    • 1970-01-01
    相关资源
    最近更新 更多