Partage
  • Partager sur Facebook
  • Partager sur Twitter

Solution INTERSECT MySQL

Comment changer ma requête ?

Sujet résolu
    13 avril 2011 à 11:08:20

    Bonjour à tous !

    Je sais que ce problème a déjà été évoqué dans d'autres posts, mais je ne trouve pas LA solution à mon problème :(

    Comme vous devez surement le savoir, MySQL ne gère pas INTERSECT. Sauf que je ne vois pas comment faire autrement ma requête !

    La voici :
    "SELECT * FROM tournois WHERE jour_semaine LIKE '%".$aujourdhui."%' AND heure_debut > CURTIME() 
    INTERSECT 
    SELECT * FROM tournois WHERE jour_semaine LIKE '%".$demain."%' AND heure_debut < CURTIME()";
    


    En gros, je dois récupérer les tournois qui ont lieu dans les prochaines 24h.

    Quelqu'un peut-il m'aider ??? :euh:
    • Partager sur Facebook
    • Partager sur Twitter
      13 avril 2011 à 11:12:14

      Y a quoi dans jour_semaine et heure_debut ??
      • Partager sur Facebook
      • Partager sur Twitter
        13 avril 2011 à 11:17:13

        Désolée, en faisant le copier-coller je viens juste de m'apercevoir que je donnais pas beaucoup d'informations...

        Donc :
        - jour_semaine contient le jour pour lequel le tournoi est organisé. Soit il contient Saturday ou Sunday, ou bien il contient tout les jour de la semaine, c'est pourquoi je fais une recherche de chaîne.
        - $aujourdhui correspond au jour d'aujourd'hui en toutes lettres.
        - heure_debut est l'heure à laquelle commence le tournoi (hh:mm:ss).
        - $demain contient le jour de demain en toutes lettres comme $aujourdhui.

        Je dois sélectionner les tournois après l'heure actuelle et avant demain à la même heure en gros.

        Si vous avez besoin de plus d'informations hésitez pas.
        • Partager sur Facebook
        • Partager sur Twitter
          13 avril 2011 à 11:21:42

          Tu aurais mieux fait de mettre un type datetime pour heure_debut ainsi les données stockées dans cette colonne aurait la forme AAAA-MM-JJ HH:MM:SS (et donc tu aurai également le jour)
          Ainsi un simple between t'aurai permis de faire ce que tu souhaites
          • Partager sur Facebook
          • Partager sur Twitter
            13 avril 2011 à 11:25:41

            Le truc c'est que ces tournois sont tous les mêmes toutes les semaines. Du coup, je ne savais pas trop comment gérer la date si je la mettais.

            C'est vraiment pas possible ?

            Et je ne vois pas trop comment faire avec la date entière :/ Tu peux détailler un peu plus s'il te plait ?
            • Partager sur Facebook
            • Partager sur Twitter
              13 avril 2011 à 11:27:40

              Enf ait, je comprend pas pourquoi tu voudrais te casser la tête avec INTERSECT... Il me semble qu'un simple petit 'OR' suffit...

              SELECT * FROM tournois WHERE (jour_semaine LIKE '%".$aujourdhui."%' AND heure_debut > CURTIME()) OR (jour_semaine LIKE '%".$demain."%' AND heure_debut < CURTIME())
              • Partager sur Facebook
              • Partager sur Twitter
                13 avril 2011 à 11:31:08

                Merciiiiiiiiiiii beaucoup !!!! Je cherchais vraiment trop compliqué ! Bon, maintenant je vais pouvoir me prendre la tête sur un autre soucis :)

                Encore merci :D

                Bonne journée à tous !
                • Partager sur Facebook
                • Partager sur Twitter

                Solution INTERSECT MySQL

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown