我发现当查询变得复杂时,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)');
关于sql - 如何在 Moodle 中运行自定义 SQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51213830/