У меня есть функция в MySQL, которую нужно выполнить около 50 раз (не заданное значение) в запросе.входные данные в настоящее время хранятся в массиве, таком как [1,2,3,4,5,6,7,8,9,10]
, при индивидуальном выполнении запроса MySQL он работает нормально, см. ниже
column_name
обозначает столбец, для которого он получает данные,в данном случае это ДВОЙНОЙ в базе данных
Второе значение в функции MOD()
- это ввод, который я поставляю MySQL из вышеупомянутого массива
SELECT id, MOD(column_name, 4) AS mod_output
FROM table
HAVING mod_output > 10
Для достижения выводаМне требуется * следующий код работает
SELECT id, MOD(column_name, 4) AS mod_output1, MOD(column_name, 5) AS mod_output2, MOD(column_name, 6) AS mod_output3
FROM table
HAVING mod_output1 > 10 AND mod_output2 > 10 AND mod_output3 > 10
Однако это, очевидно, очень грязно, и когда не 3 входа, а более 50, это станет очень неэффективным.
Appart от вызова по50 отдельных запросов, есть ли лучший способ получить такой же (см. Ниже) вывод?
В сущности, мне нужно предоставить MySQL список значений и запустить его MOD()
над всеми из них в указанном столбце.
Единственные данные, которые мне нужно вернуть, это id
строк, которые соответствуют выводу функций MOD()
с указанным значением inpu.t (см. значение 2 функции MOD()
), где выходное значение меньше 10
Обратите внимание, что MOD()
была использована в качестве примера функции, однако, требуемая конечная функция * должна* капля замены
пример макета таблицы
id | column_name
1 | 0.234977
2 | 0.957739
3 | 2.499387
4 | 48.395777
5 | 9.943782
6 | -39.234894
7 | 23.49859
.....
(Название может быть неверно сформулировано, я не совсем уверен, как иначе вы бы объяснили, что яя пытаюсь сделать здесь)