gpt4 book ai didi

PHP:通过电子邮件连接数据库结果

转载 作者:太空宇宙 更新时间:2023-11-03 12:23:49 25 4
gpt4 key购买 nike

我有一个分配给多个用户的任务列表。我想设置一个 cron 作业并每小时向每个用户发送一次电子邮件通知。这是我的查询:

SELECT t.*, u.name, u.email
FROM tasks t, users u
WHERE t.date_created > DATE_SUB(NOW(), INTERVAL 1 HOUR) AND t.user_id = u.id
ORDER BY t.date_created ASC

这是结果(我修剪了几列以更好地适应):

+----+-------+---------------------+---------+--------+------+--------------+
| id | title | date_created | user_id | status | name | email |
+----+-------+---------------------+---------+--------+------+--------------+
| 9 | task1 | 2013-09-01 17:56:10 | 2 | active | John | js@gmail.com |
| 10 | task2 | 2013-09-01 17:57:20 | 1 | active | Tim | ti@gmail.com |
| 11 | task3 | 2013-09-01 17:58:30 | 2 | active | John | js@gmail.com |
| 12 | task4 | 2013-09-01 17:59:40 | 1 | active | Tim | ti@gmail.com |
+----+-------+---------------------+---------+--------+------+--------------+

问题是我不知道如何连接属于某个 user_id 的任务,然后将它们发送到指定的电子邮件。因此,对于上面的示例,将发送两封电子邮件:

  1. 任务 1 和任务 3(发送至 js@gmail.com)
  2. 任务 2 和任务 4(发送至 ti@gmail.com)

最佳答案

尝试使用 GROUP_CONCAT 聚合命令:

SELECT GROUP_CONCAT(t.title), u.name, u.email
FROM tasks t, users u
WHERE t.date_created > DATE_SUB(NOW(), INTERVAL 1 HOUR) AND t.user_id = u.id
GROUP BY u.id

这将输出如下内容:

task1,task3 | John | js@gmail.com
task2,task4 | Tim | ti@gmail.com

默认是逗号分隔的字符串,但您可以像这样指定另一个分隔符:GROUP_CONCAT(t.title,' and ')

关于PHP:通过电子邮件连接数据库结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18560766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com