Je suis en train de mettre en place un système de suivi des défis quotidiens pour un jeu vidéo. Il y a 4 défis quotidiens et un défi hebdomadaire. Chaque défi est sauvegardé dans une table avec un identifiant, qui peut être réutilisé, le défi est réutilisé (ce qui est le cas, environ 22% du temps). J'ai une autre table pour stocker les défis de chaque jour, il ressemble à ceci:Aide pour simplifier cette requête MySQL
date | daily1 | daily2 | daily3 | daily4 | expiration
Puisque les défis sont réutilisés, j'aimerais pouvoir rechercher d'autres jours où un défi a été utilisé, par son ID. J'utilise cette requête en ce moment:
SELECT date FROM `current_daily`
WHERE daily1 = #
OR daily2 = #
OR daily3 = #
OR daily4 = #
ORDER BY date ASC
Cela fonctionne, mais c'est si maladroit. J'essaye de trouver un meilleur était d'exécuter cette question ainsi je n'ai pas besoin de tous les ORs, mais puisqu'il obtient l'information de plusieurs colonnes, il ne semble pas que je puisse employer IN(). Existe-t-il une autre façon de simplifier cette requête et de toujours obtenir la même information?
Je ne pense pas que vous serez en mesure de simplement tout simplement votre SQL sans restructurer vos tables. –