我有一个表,其中每天附加一列,列的名称是当前日期。
我想为特定的一组列选择行值。
我选择的列如下:
$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');
答案 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循环重新更新了上面的答案。