У вас есть запрос запроса, возвращающий более одного значения.
Это здесь. Он находится в верхней части оператора ELSE
, который содержит вашу «строку проблемы» из исходного вопроса.
SET max_percentage = (SELECT percentage FROM options_percentage WHERE percentage = (SELECT MAX(percentage) FROM options_percentage));
Объяснение ниже
SELECT MAX(percentage) FROM options_percentage
Это хорошо, он вернет только одно значение.
SELECT percentage FROM options_percentage WHERE percentage = {scalar}
Это не всегда верно. Что происходит, когда происходит несколько percentage
совпадений?
Вы можете использовать TOP
в SQL Server
, чтобы ограничить свои результаты. Другие RMDB имеют аналогичные функции, которые вы можете искать. Я полагаю, что MySQL
эквивалент LIMIT
и он идет в конце SELECT Statement
. Надеюсь, это поможет.
В ответ на ваш вопрос обновление 8/31
Это то, что у вас есть
(SELECT MAX(percentage) FROM options_percentage LIMIT 1))
Это должно стать этим
(SELECT MAX(percentage) FROM options_percentage )LIMIT 1)
В настоящее время вы LIMIT
задаете «хороший» запрос, а не тот, который имеет проблему.
Таким образом, полная строка с указанным выше изменением будет такой:
SET max_percentage = (SELECT percentage FROM options_percentage WHERE percentage = (SELECT MAX(percentage) FROM options_percentage) LIMIT 1);