【发布时间】:2019-12-11 10:06:31
【问题描述】:
这是我的查询
"SELECT * FROM messages WHERE to_user = :user ORDER BY time ASC"
问题在于它忽略了from_user 列并显示来自单个用户的多条消息,我只想显示来自from_user 列中的每个用户的最后一条消息,并向登录的用户显示在to_user 列中
如果from_user 已经发送消息,如何忽略其他消息?
我想只选择最后一条消息from_user 到to_user
我尝试了限制,但它只选择了一条用户消息,其中一条位于 from_user 列中
PHP 代码
//$sql = "SELECT * FROM messages WHERE to_user = :user ORDER BY time ASC";
$sql = "SELECT DISTINCT from_user, messages.* FROM messages WHERE to_user = :user ORDER BY time ASC";
$stm = $conexao_pdo->prepare($sql);
$stm->bindParam(':user', $user_logged);
$stm->execute();
【问题讨论】:
-
WHERE to_user = :user ORDER BY time ASC LIMIT 1 -
我尝试了限制,但它只选择了一个用户消息,该消息位于
from_user列中> -
好的,你可以试试
SELECT DISTINCT to_user, * FROM messages WHERE to_user = :user ORDER BY time ASC -
现在它在 pdo
Call to a member function bindParam()中给我一个错误 -
尝试摆脱
bindParam(),只需要$stm->execute(['user' => $user_logged]);