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

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

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
58
1

Ответы 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;

Я бы выбрал решение PHP, данное Юджином Лорманом, его легче поддерживать в долгосрочной перспективе.

Samuel Ramzan 17.12.2018 06:09

Извини, я здесь потерялся. 1. Значит, в функции MySQL я не могу использовать массивы и функции сортировки, чтобы упростить то, что мне нужно выполнить, и прибегаю к старым методам? 2. Могу ли я использовать PHP так же, как и изначально, для выполнения функции MySQL по своему желанию? Если да, то как?

jfalberg 17.12.2018 13:19

Я полагаю, что в последнюю минуту я мог бы последовать [этому примеру] (stackoverflow.com/questions/25070577/…).

jfalberg 17.12.2018 19:36

Другие вопросы по теме