虽然我似乎无法得到任何满意的答案,关于我在这里张贴的最后一个问题,我现在期待着完成我的项目使用mysql而不是sqlite作为我的数据库背景在一个简单的localhost环境。我需要完成的一件事是使用用户定义函数(udf),php可以在更新查询中使用以下代码很好地处理sqlite:
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一样注册这样的用户定义函数,那实际上会更好,但是如何注册呢?
1条答案
按热度按时间4uqofj5v1#
为什么使用sort()?只要写一个快速排序算法,它只有4个数字。或者,您可以在php中执行此操作(我假设您正在将php连接到mysql)。
没有理由不
SELECT * FROM table; //Perform Calculation UPDATE table SET x = y WHERE something;
暴力可以是:$max = $N1 + $N2*2 + $N3*3 + N4*4; IF ($max < $N1 + $N2*2 + $N4*3 + N3*4) THEN $max = $N1 + $N2*2 + $N4*3 + N3*4 END IF ... ... ... return $max;