假设我想执行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次以获得相同的最终产品。
谢谢!
答案 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)
似乎可以这样做:
通过结果迭代反序词(您将以编程方式使用ASC命令而不是DESC)
2a上。对于每个记录,检查“日期”是否符合您的标准