使用php操纵MySQL数据库

时间:2014-08-22 05:23:43

标签: php mysql

假设我想执行2次MySQL操作:

操作1:

SELECT * From Comments ORDER BY ID DESC

操作2:

SELECT * From Comments WHERE Date >'2012-05-01', ORDER BY ID ASC

显然,第二个表包含在第一个表中;细节只是假设。我的问题:不是像上面那样执行2个单独的MySQL查询,是否有可能只获得第一个,使用它,然后LATER使用php操纵它来获得第二个?在上面的例子中,php函数需要改变表的顺序并删除不适用的行,但同样,它只是一个例子。

我为什么关心?

好吧,我正在尝试限制到我服务器的MySQL连接数。我不是只有5个单独的查询引用同一个主表,而是希望只有1个,并使用php操作它4次以获得相同的最终产品。

谢谢!

2 个答案:

答案 0 :(得分:3)

不,你不能改变桌子"。当您从PHP查询数据库时,您没有得到表格"因此,您只需返回结果集即可。您可以完美做的是将此结果存储在PHP变量中,并使用PHP代码进一步过滤或排序该数据:

$result  = $pdo->query('SELECT * From Comments ORDER BY ID DESC')->fetchAll();
$result2 = array_filter($result, function (array $row) {
    return strtotime($row['Date']) > strtotime('2012-05-01');
});
usort($result2, function (array $a, array $b) {
    return $a['ID'] - $b['ID'];
});

答案 1 :(得分:0)

似乎可以这样做:

  1. 启动第一个查询
  2. 通过结果迭代反序词(您将以编程方式使用ASC命令而不是DESC)

    2a上。对于每个记录,检查“日期”是否符合您的标准