You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用SQL查询Moodle中发送给用户ID为100的所有消息?

查询Moodle中特定用户的所有消息(以用户ID100为例)

基础查询语句

如果只需要获取消息核心数据(发送者ID、内容、发送时间等),直接查询mdl_message表即可(注意:mdl_是Moodle默认表前缀,若你的安装修改了前缀,请替换为实际值):

SELECT *
FROM mdl_message
WHERE useridto = 100;

这条语句会返回所有发送给用户ID100的消息记录,包含useridfrom(发送者ID)、subject(消息主题)、fullmessage(消息内容)、timecreated(发送时间戳)等字段。

带发送者信息的增强查询

如果需要同时获取发送者的姓名、邮箱等详情,可以关联mdl_user表:

SELECT
    m.id AS message_id,
    m.subject,
    m.fullmessage,
    CONCAT(u.firstname, ' ', u.lastname) AS sender_fullname,
    u.email AS sender_email,
    FROM_UNIXTIME(m.timecreated) AS send_time
FROM mdl_message m
INNER JOIN mdl_user u ON m.useridfrom = u.id
WHERE m.useridto = 100
  AND m.deleted = 0  -- 过滤已删除的消息,需包含已删除可去掉此条件
ORDER BY m.timecreated DESC;  -- 按发送时间倒序,最新消息排在前面

关键说明

  • useridto是mdl_message表中标记消息接收者ID的字段,通过WHERE useridto = 100精准定位目标用户的消息。
  • deleted字段值为0代表消息未被删除,1代表已删除,可根据需求决定是否保留该过滤条件。
  • FROM_UNIXTIME(m.timecreated)用于将时间戳转换为易读的日期格式,不需要的话直接用m.timecreated即可。

内容的提问来源于stack exchange,提问作者D-T

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 14:02:08