J'ai actuellement du code PHP qui exécute une seule requête complexe, avec des sous-requêtes, dans l'espoir de trouver 12 enregistrements correspondants. Si moins de 12 enregistrements sont renvoyés, le code exécute une deuxième version de la même requête, avec une clause WHERE légèrement modifiée, à ajouter aux enregistrements précédemment récupérés par la première requête. Il continue à exécuter des versions modifiées de la requête jusqu'à ce qu'un total de 12 enregistrements soit assemblé.Puis-je exécuter des sous-requêtes MySQL successives sous condition?
Je sais que je pourrais combiner les multiples requêtes - il y en a actuellement cinq - avec UNION, mais toutes les requêtes seront exécutées même si la première requête de l'union réussit à renvoyer 12 enregistrements. Puisque chaque requête est complexe, je ne veux pas gaspiller les ressources. Est-ce que MySQL sait s'arrêter d'exécuter des sous-requêtes une fois LIMIT atteint?)
Existe-t-il un moyen en MySQL d'accomplir ce que je suis en train de faire en PHP? Par exemple, comment puis-je avoir une requête avec cinq sous-requêtes, et progresser dans les sous-requêtes successives seulement si les sous-requêtes précédentes ne produisent pas le nombre désiré?
une procédure stockée ne le ferait-elle pas? –