mysql - 仅当满足 where 条件时才选择最后一行

标签 mysql

我有一个消息栏,我想弄清楚我应该如何在“已发送”文件夹中显示消息。

我运行以下查询:

 SELECT
    `text`,
    `created`
 FROM
    `messages`
 WHERE
    `status` = 1
 ORDER BY `created` DESC
 LIMIT 1

我想引入一个条件,以便只有当 status = 1 的最后一行也有 user_from = $user 时才返回结果(如果最后一行有 user_to = $user,则不应返回任何内容)。

我的查询应该是什么?

最佳答案

您可以使用子查询

select `text`, `created` from T1
( SELECT
    `text`,
    `created`
 FROM
    `messages`
 WHERE
    `status` = 1
 ORDER BY `created` DESC
 LIMIT 1) T1
where `user_from` = $user and `user_to` != $user

关于mysql - 仅当满足 where 条件时才选择最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11988543/

相关文章:

php - 从 mysql 中选择它不等于其他表中的行

MySQL根据特定列值获取所有行(按列过滤)

mysql - Controller 文件已加载但类不存在?

MySQL UNION ALL 与大型数据库上的多个 SELECT 性能比较

php - SQL 记录集混淆结果

php - mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等...期望参数 1 是资源

php - mysql_connect 上的 Laradock 错误

MySQL alter table enable keys 没有 promise 的那么快

mysql - 添加哪些索引可以加速具有三个条件的 COUNT(*) 查询

php - 如何在紧急情况下阻止站点的所有用户?