J'ai une fonction dans MySQL qui doit être exécutée environ 50 fois (pas une valeur fixe) dans une requête. les entrées sont c [1,2,3,4,5,6,7,8,9,10]
lors de l'exécution individuelle de la requête MySQL, tout se passe bien, voir ci-dessous
column_name
indique la colonne pour laquelle il obtient les données, dans ce cas, il s'agit d'un DOUBLE dans la base de données.
La deuxième valeur du MOD()
est l'entrée que je fournis à MySQL à partir du tableau susmentionné
SELECT id, MOD(column_name, 4) AS mod_output
FROM table
HAVING mod_output > 10
Pour obtenir le résultat souhaité*, le code suivant fonctionne
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
Cependant, il est évident que cette méthode est extrêmement salissante et qu'elle devient très inefficace si l'on dispose non pas de 3 entrées, mais de plus de 50.
Outre le fait d'appeler plus de 50 questionnaires individuels, existe-t-il un meilleur moyen d'atteindre l'objectif fixé ? même type (voir ci-dessous) de la production ?
En fait, je dois fournir à MySQL une liste de valeurs et lui faire exécuter MOD()
sur l'ensemble d'entre eux sur une colonne spécifiée.
Les seules données que j'ai besoin de renvoyer sont les id
des lignes qui correspondent à la MOD()
avec l'entrée spécifiée (voir la valeur 2 de la fonction MOD()
) lorsque le rendement est inférieur à 10
A noter, MOD()
a été utilisée comme exemple de fonction, mais la fonction finale requise devrait être une fonction de remplacement.
exemple de présentation de tableau
id | column_name
1 | 0.234977
2 | 0.957739
3 | 2.499387
4 | 48.395777
5 | 9.943782
6 | -39.234894
7 | 23.49859
.....
(Le titre est peut-être mal formulé, je ne sais pas trop comment expliquer autrement ce que j'essaie de faire ici)