gpt4 book ai didi

php - CakePHP 3 中 MySQL 存储函数的 ORDER BY

转载 作者:可可西里 更新时间:2023-11-01 00:41:40 25 4
gpt4 key购买 nike

我正在研究 cakePHP 3。我在 mysql 数据库中有一个用户定义的函数(UDF 或 Routine)。该函数接受一个参数并返回一个整数值。我必须在 MySQL order 子句中对返回值进行排序。

我知道 mysql 查询使用那个函数。即,

SELECT customer_id FROM table_name ORDER BY routine_name(param1);         //param1 is 'customer_id' which I have written after SELECT

但我不知道如何在 cakePHP 3 中构建此查询。如果有人知道解决方案,将不胜感激。

这是我的 cakePHP 3 代码。

$purchasesTable = TableRegistry::get("Purchases");
$query = $purchasesTable->find();

$sf_val = $query->func()->routine_name(['Purchases.customer_id' => 'literal']);
$query->select();
$query->order(
// Routine/Function call should be here as per MySQL query.
// So, I think here I have to do something.
);

最佳答案

我建议您仔细查看 (API) 文档,那里都提到了。您可以将表达式对象传递给 Query::order(),如果您需要指定方向,还有 Query::orderAsc()Query::orderDesc()

所以

$expression = $query->func()->routine_name(['Purchases.customer_id' => 'literal']);
$query->order($expression);

$query->orderAsc($expression);

$query->orderDesc($expression);

另见

关于php - CakePHP 3 中 MySQL 存储函数的 ORDER BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34609102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com