MySQL查询,按条件分组,然后按最新分组

奥玛丽·维克多·奥莫萨(Omari Victor Omosa)

我有这段代码,可以根据已登录用户的ID对消息进行分组,该代码可以很好地工作。但是现在我想做一些我不知道要实现的修改

我的查询代码

 $query_messages = mysqli_query($link,"SELECT 
      PreQuery.*,
      m2.message,
      m2.senderID,
      m2.receiverID
   from
      ( SELECT 
              if( m.senderID < m.receiverID, m.senderID, m.receiverID ) as Person1,
              if( m.senderID < m.receiverID, m.receiverID, m.senderID ) as Person2,
              max( m.messageID ) as LastMessageIDPerChat,
              max( m.date ) as LastMessageDate
           FROM 
              messages m
           WHERE 
                   '$user' IN ( senderID, receiverID ) 
           GROUP BY
              Person1, 
              Person2
           ORDER BY 
              m.date ASC
           LIMIT 10 ) PreQuery

         JOIN messages m2
            on PreQuery.LastMessageIDPerChat = m2.messageID    ORDER BY 
              date DESC");
$row_messages = mysqli_fetch_assoc($query_messages);
$totalRows_messages = mysqli_num_rows($query_messages);

数据库结构

在此处输入图片说明

简要说明

假设*已登录用户的变量为$ user

在数据库中,用户可以是senderIDReceiverID

$用户删除他的谈话中,他的消息从更新01的senderdelete列或列receiverdelete *

问题是:

我希望修改MySQLI查询代码并将其添加到查询中

if $user is the sender then senderdelete should be value 0

if $user is the receiver then receiverdelete should be value 0

有什么帮助吗?

奥玛丽·维克多·奥莫萨(Omari Victor Omosa)

我在where子句中添加了它,它似乎正在工作

WHERE 
'$myid' IN ( senderID ) AND senderdelete = 0 
OR
'$myid' IN ( receiverID ) AND receiverdelete = 0 

完整的更新代码

 $query_messages = mysqli_query($link,"SELECT 
      PreQuery.*,
      m2.message,
      m2.senderID,
      m2.receiverID,
      m2.senderdelete,
      m2.receiverdelete
   from
      ( SELECT 
              if( m.senderID < m.receiverID, m.senderID, m.receiverID ) as Person1,
              if( m.senderID < m.receiverID, m.receiverID, m.senderID ) as Person2,
              max( m.messageID ) as LastMessageIDPerChat,
              max( m.date ) as LastMessageDate
           FROM 
              messages m
           WHERE 
                   '$myid' IN ( senderID) AND senderdelete = 0 OR '$myid' IN ( receiverID) AND receiverdelete = 0 

           GROUP BY
              Person1, 
              Person2
           ORDER BY 
              m.date ASC
           LIMIT 10 ) PreQuery

         JOIN messages m2
            on PreQuery.LastMessageIDPerChat = m2.messageID    ORDER BY 
              date DESC");
$row_messages = mysqli_fetch_assoc($query_messages);
$totalRows_messages = mysqli_num_rows($query_messages);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MySql:获取最新记录,然后按字母顺序分组

来自分类Dev

熊猫分组计数,然后按条件均值

来自分类Dev

mysql计数,然后按该计数分组

来自分类Dev

首先按类别分组,然后按周或月分组

来自分类Dev

首先按C列分组,然后按A列分组

来自分类Dev

在MySQL查询中按条件分组

来自分类Dev

c#Linq查询按组然后按子组对项目进行分组

来自分类Dev

Mysql:按条件分组

来自分类Dev

MongoDB按项目分组,然后按周数总计

来自分类Dev

Laravel雄辩:按员工分组,然后按DAY

来自分类Dev

MySQL按列分组,然后按另一列计数

来自分类Dev

MySQL按列分组,然后按另一列计数

来自分类Dev

TSQL:按查询条件分组

来自分类Dev

条件分组按 sql 查询

来自分类Dev

查询子文档上的汇总,然后按父文档中的字段分组

来自分类Dev

使用自定义列的SQL SELECT查询,然后按列进行汇总和分组

来自分类Dev

SQL查询计数出现的次数,然后按天分组,但也填写缺少的日子

来自分类Dev

Spark-按键分组,然后按值计数

来自分类Dev

熊猫:按时间分组,然后按组绘制密度

来自分类Dev

LINQ获取客户分组的日期,然后按其类型

来自分类Dev

将Observables分组,然后按计数过滤

来自分类Dev

如何汇总客户,按性别然后按月分组?

来自分类Dev

首先对结果进行排序,然后按mysql中的结果集进行分组

来自分类Dev

在MySQL中按条件分组

来自分类Dev

mysql如何按条件分组?

来自分类Dev

通过按日期分组,然后按日期时间在NodeJS中分组来转换JSON

来自分类Dev

首先按频率分组数据,然后按python中的类别分组

来自分类Dev

熊猫分组并计数,然后按分组大小对整个数据框进行升序排序?

来自分类Dev

SQL查询按多个条件分组

Related 相关文章

  1. 1

    MySql:获取最新记录,然后按字母顺序分组

  2. 2

    熊猫分组计数,然后按条件均值

  3. 3

    mysql计数,然后按该计数分组

  4. 4

    首先按类别分组,然后按周或月分组

  5. 5

    首先按C列分组,然后按A列分组

  6. 6

    在MySQL查询中按条件分组

  7. 7

    c#Linq查询按组然后按子组对项目进行分组

  8. 8

    Mysql:按条件分组

  9. 9

    MongoDB按项目分组,然后按周数总计

  10. 10

    Laravel雄辩:按员工分组,然后按DAY

  11. 11

    MySQL按列分组,然后按另一列计数

  12. 12

    MySQL按列分组,然后按另一列计数

  13. 13

    TSQL:按查询条件分组

  14. 14

    条件分组按 sql 查询

  15. 15

    查询子文档上的汇总,然后按父文档中的字段分组

  16. 16

    使用自定义列的SQL SELECT查询,然后按列进行汇总和分组

  17. 17

    SQL查询计数出现的次数,然后按天分组,但也填写缺少的日子

  18. 18

    Spark-按键分组,然后按值计数

  19. 19

    熊猫:按时间分组,然后按组绘制密度

  20. 20

    LINQ获取客户分组的日期,然后按其类型

  21. 21

    将Observables分组,然后按计数过滤

  22. 22

    如何汇总客户,按性别然后按月分组?

  23. 23

    首先对结果进行排序,然后按mysql中的结果集进行分组

  24. 24

    在MySQL中按条件分组

  25. 25

    mysql如何按条件分组?

  26. 26

    通过按日期分组,然后按日期时间在NodeJS中分组来转换JSON

  27. 27

    首先按频率分组数据,然后按python中的类别分组

  28. 28

    熊猫分组并计数,然后按分组大小对整个数据框进行升序排序?

  29. 29

    SQL查询按多个条件分组

热门标签

归档