SI Condition Effectuer une requête, Sinon effectuer d'autres requêtes
Il se sent assez simple en quelque chose, mais MySQL.
Essentiellement, j'ai besoin de passer ce genre d'indice, je suis à l'aide de quelques autres conditions en fonction du nombre de résultats d'un terme particulier retourne.
Quelque chose à l'effet de:
IF (SELECT COUNT(*) FROM table WHERE term LIKE "term") > 4000
EXECUTE QUERY A
ELSE
EXECUTE QUERY B
Est-ce possible dans une base de données MySQL?
EDIT:
Requête:
SELECT id
FROM table_a
FORCE INDEX(id)
JOIN table_b ON table_a.id = table_b.id
WHERE term LIKE "term"
ORDER BY date
LIMIT 100;
La Requête B:
SELECT id
FROM table_a
FORCE INDEX(term)
JOIN table_b ON table_a.id = table_b.id
WHERE term LIKE "term"
GROUP BY term # These lines would be included for a few conditions not mentioned above.. but are necessary
HAVING COUNT = 1 # same...
ORDER BY date
LIMIT 100;
La raison de la requête de l'interrupteur est que je obtenir de façon spectaculaire résultat différent de la fois en fonction de la popularité de la "durée".
source d'informationauteur Howard Zoopaloopa | 2013-06-19
Vous devez vous connecter pour publier un commentaire.
EDIT: Ce que j'ai dit ci-dessous au sujet de l'obligation d'une procédure stockée n'est PAS VRAI. Essayez ceci:
C'est, en effet, un cas de l'expression, et il fonctionne très bien en dehors d'une procédure stockée 🙂
Par exemple:
Vieille réponse ci-dessous pour l'intérêt historique, depuis qu'il a déjà rassembler des upvotes:
Vous pouvez utiliser le dessous je pense, mais seulement à l'intérieur d'une procédure stockée:
C'est un
CASE
instruction, à la différence d'unCASE
expression... https://dev.mysql.com/doc/refman/5.0/en/case.html a plus de détails sanglants.En fait, je soupçonne en général, si vous voulez exécuter des requêtes différentes, sous certaines conditions, vous allez avoir besoin de regarder en direction de procédures stockées -- j'ai peut-être tort, mais c'est mon sentiment à ce point. Si vous pouvez le faire, il va probablement être le CAS avec les expressions!
Un dernier edit: en tout l'exemple du monde réel, je le ferais probablement le conditionnel dans mon application, et de l'arrêt de SQL (ou à un ORM qui permettrait de générer my SQL) une fois que j'avais décidé de ce qu'il recherche.
Essayer: