J'ai une requête mySQL quelque peu complexe que j'essaie d'exécuter. J'ai deux paramètres: facility et isEnabled. L'installation peut avoir la valeur "ALL" ou être un ID spécifique. isEnabled peut avoir la valeur "ALL" ou être 0/1.Problème de requête MySQL complexe
Mon problème est que je dois venir avec la logique qui peut gérer les scénarios suivants: 1) Facility = ALL ET isEnabled = ALL 2) Facility = ALL ET isEnabled = valeur 3) Facility = someID ET isEnabled = ALL 4) Facilité = someID ET isEnabled = valeur
le problème est que j'ai plusieurs instructions IF imbriquées:
IF (Facility = 'ALL') THEN
IF (isEnabled = 'ALL') THEN
SELECT * FROM myTable
ELSE
SELECT * FROM myTable
WHERE isEnabled = value
END IF;
ELSE
IF (isEnabled = 'ALL') THEN
SELECT * FROM myTable
WHERE facility = someID
ELSE
SELECT * FROM myTable
WHERE facility = someID AND isEnabled = value
END IF;
END IF;
Je voudrais être en mesure de combiner la logique dans la clause WHERE utilisant une déclaration CASE ou Conditionnel (ET/OU) mais j'ai du mal à envelopper la tête ce matin. Actuellement, la requête ne fonctionne pas comme prévu.
Un aperçu serait utile! Merci
Vous pouvez simplement mettre cette logique dans votre 'WHERE' clause et utiliser des parenthèses ... –