Php MySQL自定义函数是否可以使用数组和排序?
虽然我似乎无法得到关于上一个问题的满意答案,但我现在希望在一个简单的localhost环境中使用MySQL而不是SQLite作为数据库背景来完成我的项目。我需要完成的一件事是使用用户定义函数(UDF),PHP可以在更新查询中使用以下代码很好地处理SQLite:Php MySQL自定义函数是否可以使用数组和排序?,php,mysql,user-defined-functions,Php,Mysql,User Defined Functions,虽然我似乎无法得到关于上一个问题的满意答案,但我现在希望在一个简单的localhost环境中使用MySQL而不是SQLite作为数据库背景来完成我的项目。我需要完成的一件事是使用用户定义函数(UDF),PHP可以在更新查询中使用以下代码很好地处理SQLite: function nPoints($n1, $n2, $n3, $n4) { $numb = array($n1, $n2, $n3, $n4); sort($numb); return $numb[0] * 1
function nPoints($n1, $n2, $n3, $n4)
{
$numb = array($n1, $n2, $n3, $n4);
sort($numb);
return $numb[0] * 1 + $numb[1] * 2 + $numb[2] * 3 + $numb[3] * 4;
}
基本上,我取4个数字,然后做一个计算,将最小的数字乘以1,然后最小的一个乘以2,最小的第三个乘以3,然后最大的乘以4,不管是否有联系。作为MySQL用户定义的函数,我可以这样做吗?如果不能,那么不使用更复杂的方法(例如用于下一个循环的快速排序逻辑)的最干净的方法是什么
如果PHP能够像在SQLite中一样注册这样的用户定义函数,那实际上会更好,但是如何注册呢?为什么要使用sort()?只要写一个快速排序算法,它只有4个数字。
或者,您可以在PHP中执行此操作(我假设您正在将PHP连接到MYSQL)
没有理由不
从表中选择*;
//计算
更新表格集合x=y,其中有内容代码>
暴力可以是:
$max=$N1+$N2*2+$N3*3+N4*4;
如果($max<$N1+$N2*2+$N4*3+N3*4),则
$max=$N1+$N2*2+$N4*3+N3*4
如果结束
...
...
...
返回$max代码>我会选择Eugene Lorman提供的PHP解决方案,从长远来看,它更容易维护。很抱歉,我在这里迷路了。1.因此,在MySQL函数中,我不能使用数组和排序函数来简化我需要完成的任务,也不能使用旧方法来完成任务?2.我可以像最初那样使用PHP来实现所需的MySQL功能吗?如果是这样的话,那怎么办呢?我想作为最后的手段,我可以遵循[这个例子]()。