Medoo select查询仅返回1条聊天记录,如何获取两用户全部聊天数据
问题原因
你现有查询的AND条件仅匹配了from_user_id = 14 且 to_user_id = 13的单向消息,没有覆盖from_user_id = 13 且 to_user_id = 14的反向消息,因此仅返回1条结果。
解决方案
你需要使用嵌套的OR+AND条件,匹配双向收发的两种场景,正确的Medoo查询写法如下:
$database->select("chat_messages", "*", [ "OR" => [ ["AND" => ["from_user_id" => 13, "to_user_id" => 14]], ["AND" => ["from_user_id" => 14, "to_user_id" => 13]] ], "ORDER" => ["msg_time" => "DESC"] ]);
这个查询逻辑会匹配两类消息:
- 用户13发送给用户14的消息
- 用户14发送给用户13的消息
对应你的测试数据可以返回全部2条聊天记录,符合预期需求。
内容的提问来源于stack exchange,提问作者Fabrice Ibols
相关产品推荐
相关产品推荐

