Partage
  • Partager sur Facebook
  • Partager sur Twitter

MYSQL] Requete à double condition

Afficher les valeurs > 10 et qui ne sont pas entre 1 et 10

    5 mai 2011 à 14:19:35

    Bonjour,

    Je cherche désespérement à afficher les résultats qui sont supérieurs à 10 et qui ne sont pas également entre 1 et 10.

    SELECT COUNT(DISTINCT(rb.mc_id)) AS NBRE FROM (`resultats_bruts` rb) 
    WHERE `rb`.`dom_id` = 1 
    AND `rb`.`res_position` > 10
    AND `rb`.`mc_id` IN (11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
    


    En fait un 'mc_id' (mot clé ID) peut etre plusieurs fois à différents positions, pour éviter de biaiser les stats, j'aimerai exclure les mc_id qui existe déja dans top 10.

    Possible ?

    Merci bcp
    • Partager sur Facebook
    • Partager sur Twitter
      5 mai 2011 à 15:41:30

      Tu veux tout ce qui est supérieur à 10 et mc_id peut exister en plusieurs exemplaire ?

      Le problème c'est que la lecture de te requête devient difficile quand il y a plusieurs champs comme :
      dom_id
      res_position
      mc_id

      Donc on s'y perd
      • Partager sur Facebook
      • Partager sur Twitter
        5 mai 2011 à 15:48:42

        Salut,
        déjà merci de ta réponse.

        Que veut tu comme informations complémentaires ?

        Pour t'en dire d'avantage, ce sont des positions de mot clés sur un moteur de recherche.

        Le mot clé 1 peut donner un site en position 1, 10, 20 par exemple.

        Ensuite je veut dans un tableau compter le nombre de mots clés différents dans le top 10, et une seconde colonne(qui correspond à ma requête ci dessus) affichant les mots clés pour tel domaine qui sont supérieurs à la 10 ème position.

        La petite subtilité et pas des moindres, je ne veux pas reprendre dans mon TOP > 10, les mots clés ayant servis au TOP 10.

        Merci
        • Partager sur Facebook
        • Partager sur Twitter
          5 mai 2011 à 16:08:10

          Je pense avoir une idée, as tu essayé le :
          NOT IN (1,2,3...10)
          
          --Ou bien 
          
          WHERE x != 1 AND x!=2 AND x!=3 ... AND x!=10
          


          ainsi tout ce qui n'est pas dans 1, 2, 3 ... 10 ne seront pas prit en compte
          • Partager sur Facebook
          • Partager sur Twitter
            5 mai 2011 à 16:14:19

            J'y est pensé, mais comment je peux les connaitre à l'avance ces mots cles id ?

            Ne peut t'on pas le résumer sous forme de res_position NOT EXIST BETWEEN 1 AND 10
            • Partager sur Facebook
            • Partager sur Twitter
              5 mai 2011 à 16:20:24

              Salut !

              Citation : Kijer

              Je cherche désespérement à afficher les résultats qui sont supérieurs à 10 et qui ne sont pas également entre 1 et 10.



              Normalement, s'ils sont supérieurs à 10, comment peuvent-ils être compris entre 1 et 10 ?????
              • Partager sur Facebook
              • Partager sur Twitter
                5 mai 2011 à 16:23:46

                Citation : V@l3NtIn

                Salut !

                Citation : Kijer

                Je cherche désespérement à afficher les résultats qui sont supérieurs à 10 et qui ne sont pas également entre 1 et 10.



                Normalement, s'ils sont supérieurs à 10, comment peuvent-ils être compris entre 1 et 10 ?????




                Exemple simple.


                MOTCLE 1 est présent en position 1, 5, 15
                MOTCLE 2 est present en position 12

                On a 2 MCS, 1 est TOP10 et 1 en TOP>10

                Ma requete va m'afficher 2 car elle va compter le MC1, ce qui est faux dans mon calcul, en espérant avoir été plus clair :/


                Merci
                • Partager sur Facebook
                • Partager sur Twitter
                  5 mai 2011 à 16:28:44

                  Ah ok ;)

                  Essaies ceci :

                  SELECT COUNT(DISTINCT(rb.mc_id)) AS NBRE FROM (`resultats_bruts` rb) 
                  WHERE `rb`.`dom_id` = 1 
                  AND `rb`.`res_position` > 10
                  AND `rb`.`mc_id` NOT BETWEEN 1 AND 10
                  
                  • Partager sur Facebook
                  • Partager sur Twitter
                    5 mai 2011 à 16:29:55

                    BETWEEN marche pour les entiers ?
                    Je pensais que c'était réservé pour les dates...
                    • Partager sur Facebook
                    • Partager sur Twitter
                      5 mai 2011 à 16:53:36

                      Citation : V@l3NtIn

                      Ah ok ;)

                      Essaies ceci :

                      SELECT COUNT(DISTINCT(rb.mc_id)) AS NBRE FROM (`resultats_bruts` rb) 
                      WHERE `rb`.`dom_id` = 1 
                      AND `rb`.`res_position` > 10
                      AND `rb`.`mc_id` NOT BETWEEN 1 AND 10
                      


                      D'avance, je sais que cela ne marchera pas, car ce n'est pas l'id qui ne doit pas être entre 1 et 10 mais la position des MCs.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        5 mai 2011 à 16:54:46

                        Bah modifie rb.mc_id par ce que tu veux...... :-°
                        • Partager sur Facebook
                        • Partager sur Twitter
                          5 mai 2011 à 17:03:47

                          Ce n'est pas aussi simple que ça..

                          Il faut que j'affiche le nombre de MC qui n'existe pas entre 1ere et 10 position et qui sont entre 10 et 50 eme position (le max c'est pour ca que je spécifie >10)
                          • Partager sur Facebook
                          • Partager sur Twitter
                            5 mai 2011 à 17:09:36

                            On peut avoir une explication sur les colonnes de la table ?
                            • Partager sur Facebook
                            • Partager sur Twitter
                              5 mai 2011 à 17:15:54

                              http://prntscr.com/1tzhw pour une vue plus détaillée

                              Sinon j'ai 2 autres tables mots_cles et domaines, et leurs ID se retrouvent en clef étrangère dans ma table de résultats.

                              • Partager sur Facebook
                              • Partager sur Twitter
                                5 mai 2011 à 19:51:16

                                Ça, c'est pas une explication...
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  5 mai 2011 à 19:54:47

                                  Ce n'est pas une question claire non plus ;-)
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    5 mai 2011 à 20:33:56

                                    Hé bien à quoi correspondent les colonnes ?
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      5 mai 2011 à 20:42:54

                                      Il me semblait justement que l'image était assez explicite.

                                      RES ID : CLEF PRIMAIRE
                                      RES DATE : DATE
                                      RES POSITION : POSITION DU MOT CLE SUR LE MOTEUR DE RECHERCHE
                                      RES PAGINATION : INUTILE POUR LE MOMENT
                                      RES URL : PAREIL
                                      DOM ID : CLEF ETRANGERE DE L'ID DU NOM DE DOMAINE de la TABLE DOMAINES (dom id et dom nom)
                                      RES TITRE ET DESC : DETAIL DU RESULTAT SUR LA POSITION (TITRE ET DESCRIPTION du site qui etait positionné)
                                      MC ID : CLEF ETRANGERE DE L'ID DU NOM DU MOT CLE de LA TABLE MOTS_CLES (mc_id et mc_requete)


                                      C'est ce que tu demandais ?
                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      MYSQL] Requete à double condition

                                      × 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