sql - 如何在 Moodle 中运行自定义 SQL 查询?
问题描述
当查询变得复杂时,我发现 Moodle 中的预定义查询函数不是很方便。大多数预定义函数可以在这里找到:https ://docs.moodle.org/dev/Data_manipulation_API
我想知道 Moodle 中是否有一个函数允许我运行任何自定义 SQL 查询,以便我可以对 Moodle DB 执行任何我需要的操作(例如,使用 php query() 函数运行自定义查询)。
一个例子是,我试图从表'trigger_message'中获取最后一行,我知道在 php 中我可以做到
$sql=("
SELECT Trigger_id
FROM trigger_message
ORDER BY trigger_Id
DESC limit 1
");
$id = $DB->query($sql);
但是在moodle中我不知道该怎么做,有人可以建议吗?
解决方案
每个 Moodle DB 函数都有一个接受 SQL + 参数的 _sql 变体 - 请参阅此处的文档:https ://docs.moodle.org/dev/Data_manipulation_API
因此,从您的示例中,您可能需要以下内容:
$id = $DB->get_field_sql("SELECT MAX(trigger_id) FROM {trigger_message}");
(这将整理出 trigger_message 表的正确前缀 - 通常是 mdl_trigger_message)。
但是,对于您给出的示例,您可能想要编写:
$id = $DB->get_field('trigger_message', 'MAX(trigger_id)');
推荐阅读
- php - 如何在 Woocommerce 中为每个品牌创建购物车
- python - 具有多个输入的神经网络(keras、文本分类)
- kotlin - TornadoFx的UI中为什么会自动添加root后声明的变量?
- vb.net - 已发布的 Vb.net 项目未运行
- spring-webflux - spring webflux,将 Flux 转换为 arraylist(或可迭代列表)
- qt - Layout in QT designer
- rust - 如何在 actix-web 服务器启动时运行回调函数?
- python - 在页面上添加表单后获取 __str__ 返回非字符串错误
- apache-spark - org.apache.spark.sql.AnalysisException:已解析的属性
- c - MPI_Isend() 和 MPI_Irsend() 有什么区别?