我重新提出这个问题,因为大多数示例中都有一些奇怪的表连接,这对我来说没有意义。我想做的是按日期(以Y-m-d格式)提取最近的邮件,但按邮件的日期将它们分组。
$query = "
SELECT *
FROM mail
WHERE ( receiver = '$username' OR sender = '$username' )
GROUP
BY date DESC
";
这是我的开始,但是我需要按日期提取最新值。有谁知道该怎么做,但仍然保留接收方和发送方限定符?
答案 0 :(得分:1)
大概是您想要最近日期的行。 这不是聚合查询!正在过滤:
SELECT m.*
FROM mail m
WHERE ? IN (m.receiver, m.sender) AND
date = (SELECT MAX(m2.date)
FROM mail m2
WHERE (m2.receiver = m.sender AND m2.sender = ?) OR
(m2.sender = m.receiver AND m2.receiver = ?)
);
请注意,我已将'$username'
更改为参数(?
)的适当占位符。您的版本看上去很危险,很难用字符串值来填充查询字符串-这会使查询进入SQL注入状态,并且可能会引入难以调试的语法错误。
答案 1 :(得分:1)
import { fooConfig } from '@foo\foo.config';
import { barConfig } from '@bar\bar.config';
import { bazConfig } from '@baz\baz.config';