小编Vla*_*pak的帖子

总和列总计(每个重复行数据仅一次)

假设我有下orders表,并且我正在检索所有failed订单。

+----+------------------+-------+--------+
| id | email            | total | status |
+----+------------------+-------+--------+
| 1  | john@example.com | 39.99 | failed |
|----|------------------|-------|--------+
| 2  | john@example.com | 39.99 | failed |
|----|------------------|-------|--------+
| 3  | pete@example.com | 19.99 | failed |
+----+------------------+-------+--------+
Run Code Online (Sandbox Code Playgroud)

我需要获取失败订单的总数以及它们的总和,但每个重复行仅获取一次(当相同email且相total同时,该行被视为重复)

目前我有一个非常简单的查询,它获取所有failed订单的总数。我不知道如何去修改它返回所需的数据(我已经试过搞乱与周围DISTINCTGROUP BY没有用。)

SELECT COUNT(*) AS `count`, SUM(`total`) AS `grand_total` FROM `orders` WHERE `status` = 'failed';
Run Code Online (Sandbox Code Playgroud)

返回:

+-------+-------------+
| count | grand_total |
+-------+-------------+ …
Run Code Online (Sandbox Code Playgroud)

mysql sql

3
推荐指数
1
解决办法
3159
查看次数

SF2 RedirectResponse不起作用

我在我的项目中使用HttpFoundation组件,而不使用完整的Symfony2框架。如果某些凭据为真,我尝试进行RedirectResponse并重定向用户(如文档中所述),但该return语句不起作用。

我有:

use Symfony\Component\HttpFoundation\RedirectResponse;

$logged = 1;

if ($logged == 1) {
    $response = new RedirectResponse('http://google.com/');

    return $response;
} else {
    die("not logged");
}
Run Code Online (Sandbox Code Playgroud)

当我执行此操作时,没有任何反应。但是,如果我改为这样做,则可以成功重定向到Google:

if ($logged == 1) {
    $response = new RedirectResponse('http://google.com/');

    echo $response;
}
Run Code Online (Sandbox Code Playgroud)

为什么这与echo但不起作用return?我不想echo在我的课程库中使用。

有什么办法吗?

php http symfony symfony-http-foundation psr-7

3
推荐指数
1
解决办法
532
查看次数

如何导出mysql查询结果以便我可以再次将其导入回来

我想按特定条件从表中转储数据,这是 sql 查询:

"SELECT * FROM document WHERE date BETWEEN 20160101 AND 20160131"

我从中选择的表是 MyISAM Merge。

我已删除与该查询匹配的行,并且我想从备份中导入它们,但仅限于这些行。

我尝试过像这样制作转储:

mysql -uroot -proot mydb -e "SELECT * INTO OUTFILE '/tmp/doc.sql' from document WHERE date BETWEEN 20160101 AND 20160131".

但会生成一个无法用phpmyadmin导入工具导入的文件。PMA 再次不想导出此查询结果。

有什么帮助吗?由于保密协议,我无法发布真实数据库/表的结构。

编辑:对于所有从 MyISAM MRG 表转储数据时遇到问题的人,您需要从子表转储,而不是主表。

mysql sql dump

2
推荐指数
1
解决办法
1824
查看次数

setTimeout的工作量超出了我的预期

我有简单的js脚本:

const printDate = (interval) => {
  setTimeout(() => {
    console.log(new Date());
    printDate();
  }, interval);
};
printDate(1000);
Run Code Online (Sandbox Code Playgroud)

而且我希望每1秒钟在控制台中看到1条记录,因为我已经通过1000作为间隔(这是1秒).
但是当我运行这个脚本时,我收到这样的东西:

km:gh kvol$ node test.js
2017-07-20T05:54:20.241Z
2017-07-20T05:54:20.244Z
2017-07-20T05:54:20.246Z
2017-07-20T05:54:20.247Z
2017-07-20T05:54:20.249Z
2017-07-20T05:54:20.250Z
2017-07-20T05:54:20.252Z
2017-07-20T05:54:20.253Z
2017-07-20T05:54:20.255Z
2017-07-20T05:54:20.256Z
2017-07-20T05:54:20.258Z
2017-07-20T05:54:20.259Z
2017-07-20T05:54:20.261Z
2017-07-20T05:54:20.262Z
2017-07-20T05:54:20.264Z
2017-07-20T05:54:20.265Z
2017-07-20T05:54:20.267Z
2017-07-20T05:54:20.268Z
2017-07-20T05:54:20.270Z
2017-07-20T05:54:20.271Z
2017-07-20T05:54:20.273Z
2017-07-20T05:54:20.274Z
2017-07-20T05:54:20.276Z
2017-07-20T05:54:20.277Z
2017-07-20T05:54:20.279Z
2017-07-20T05:54:20.280Z
2017-07-20T05:54:20.281Z
2017-07-20T05:54:20.283Z
2017-07-20T05:54:20.284Z
2017-07-20T05:54:20.286Z
2017-07-20T05:54:20.288Z
2017-07-20T05:54:20.290Z
2017-07-20T05:54:20.291Z
2017-07-20T05:54:20.293Z
2017-07-20T05:54:20.294Z
2017-07-20T05:54:20.296Z
Run Code Online (Sandbox Code Playgroud)

javascript node.js

1
推荐指数
1
解决办法
55
查看次数

Node.js setTimeout永远循环

无法解释nodejs的行为。我有代码:

while (true) {
  setTimeout(() => console.log(1), 0)
}
Run Code Online (Sandbox Code Playgroud)

这个脚本只是挂了...

怎么来的?我一直在考虑setTimeout非阻塞和异步,并且nodejs使用timers事件循环阶段来调度setTimeout回调...但是似乎事件循环被阻塞了...

javascript node.js

-2
推荐指数
1
解决办法
1224
查看次数

标签 统计

javascript ×2

mysql ×2

node.js ×2

sql ×2

dump ×1

http ×1

php ×1

psr-7 ×1

symfony ×1

symfony-http-foundation ×1