J'ai une requête qui fait plusieurs appels dans une instruction SELECT à une fonction définie par l'utilisateur. La fonction (vfget) renvoie la valeur de retour de paires clé = valeur contenus dans une chaîne.Optimize requête MySQL pour éviter les appels inutiles à la fonction définie par l'utilisateur
Est-il possible pour la requête de simplement appeler la fonction une fois et le stocker dans une variable afin qu'il puisse être réutilisé dans le même requête?
Actuellement ma requête est:
SELECT
CASE WHEN(right(vfget(appmod_params, 'service'), 3) = '_dd' OR right(vfget(appmod_params, 'service'), 3) = '_wp')
THEN left(vfget(appmod_params, 'service'), length(vfget(appmod_params, 'service'))-3)
ELSE vfget(appmod_params, 'service')
END
FROM ota1003
LIMIT 10
Merci, a parfaitement fonctionné après avoir supprimé l'extra "(" –
Est-il possible d'éviter d'avoir la première sortie de champ dans les résultats? –
@James: enfermez la requête dans une requête imbriquée, mais il sera moins efficace – Quassnoi