在另一个选择查询中使用一个选择查询的输出

时间:2016-01-19 05:18:03

标签: mysql arrays sql-server select mysqli

我有一个表,其中每天附加一列,列的名称是当前日期。

我想为特定的一组列选择行值。

我选择的列如下:

$name_query = mysqli_query($conn,"select  column_name  from    information_schema.columns where   table_name = 'record' and column_name between ('05-01-2016') and ('07-01-2016')");

现在我希望这个输出采用数组的形式,用逗号分隔。

我将在另一个SQL查询中使用此输出:

$query = mysqli_query($conn,'SELECT [output] from att_record where group_id = 1');

2 个答案:

答案 0 :(得分:0)

因此您可以生成第二个查询。因此,您可以直接从第一个Query执行Result。

SELECT
  CONCAT('SELECT ',
  GROUP_CONCAT(CONCAT('`',COLUMN_NAME,'`')),
  ' from att_record where group_id = 1')
FROM information_schema.columns
WHERE TABLE_NAME = 'att_record'
  AND COLUMN_NAME BETWEEN ('05-01-2016') AND ('07-01-2016');

<强>结果

SELECT 05-01-2016,06-01-2016 from att_record where group_id = 1

答案 1 :(得分:0)

$name_query = mysqli_query($conn,"select  column_name  from    information_schema.columns where   table_name = 'record' and column_name between ('05-01-2016') and ('07-01-2016')");

$columns=array();

while ($row = $name_query->fetch_row()) {
    array_push($columns,"`".$row[0]."`");
}

$query = mysqli_query($conn,'SELECT '.implode(",",$columns).' from att_record where group_id = 1');

尝试以上查询,请回复输出。

<强>更新

我在第二次查询中做了一些更改,请再次检查并让我知道结果。

看来OP的服务器没有mySQL native driver,所以我用while循环重新更新了上面的答案。