MySQL пользовательская функция с использованием массивов и сортировки возможно?

В то время как кажется, что я не могу получить удовлетворительные ответы относительно моего последнего опубликованного вопроса Вот, Сейчас я хочу завершить свой проект, используя MySQL вместо SQLite в качестве фона для своей базы данных в простой среде localhost. Единственное, что мне нужно сделать, — это использовать пользовательскую функцию (UDF), которую PHP может хорошо обрабатывать с помощью SQLite, используя следующий код в запросе UPDATE:

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 наименьшее на 3, а затем наибольшее на 4, независимо от наличия каких-либо связей или нет. могу ли я сделать это аналогичным образом как пользовательскую функцию MySQL, и если нет, то каков самый чистый способ, не делая более хитрые вещи, такие как быстрая логика сортировки с использованием циклов for-next и тому подобное?

Если PHP может справиться с регистрацией таких пользовательских функций, как это можно сделать с SQLite, то было бы лучше на самом деле, но как?

-1

Решение

Зачем использовать 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;

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector