mysql自定义函数使用数组和排序有可能吗?

lnlaulya  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(429)

虽然我似乎无法得到任何满意的答案,关于我在这里张贴的最后一个问题,我现在期待着完成我的项目使用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一样注册这样的用户定义函数,那实际上会更好,但是如何注册呢?

4uqofj5v

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;

相关问题