DuR0 Posté 2 Janvier 2007 Partager Posté 2 Janvier 2007 Bonjour, Je vais simplifier la requête afin de ne pas embrouiller tout le monde. En bref j'ai un champ "lecture_sujet_forum" dans ma table qui contient ce genre d'information : 0-14-25-5-157-2-6 0-5-2-3-444-58-69 ... Les numéro sont unique. J'aimerai savoir si un numero ce trouve dans cette liste. Comment faire? (Je voudrai rester dans la norme, mais si on ne peut pas j'utilise SQL Server 2005) Merci d'avance! Lien vers le commentaire Partager sur d’autres sites More sharing options...
froidure_nicolas Posté 2 Janvier 2007 Partager Posté 2 Janvier 2007 Un truc comme ça : SELECT * FROM ma_table WHERE lecture_sujet_forum LIKE(%(ID)%); Je vérifie demain et je reviens si nécessaire. Lien vers le commentaire Partager sur d’autres sites More sharing options...
captain_torche Posté 3 Janvier 2007 Partager Posté 3 Janvier 2007 Ca ne marcherait malheureusement pas : une recherche du sujet 44 retournerait ledit sujet, mais également toutes les variantes contentant la chaîne 44 : 144, 2445, etc ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Portekoi Posté 3 Janvier 2007 Partager Posté 3 Janvier 2007 Bonjour, Pourquoi faire compliqué? SELECT * FROM ma_table WHERE '-' + lecture_sujet_forum like '%-(id)-%'; Portekoi Lien vers le commentaire Partager sur d’autres sites More sharing options...
captain_torche Posté 3 Janvier 2007 Partager Posté 3 Janvier 2007 Heu ... parce que dans ce cas, les premier et dernier éléments de la chaîne seront ignorés ? Il faudrait éventuellement voir avec une expression régulière. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Portekoi Posté 3 Janvier 2007 Partager Posté 3 Janvier 2007 Ben non pourquoi? SELECT * FROM ma_table WHERE '-' + lecture_sujet_forum + '-' like '%-(id)-%'; Suffit de mettre le '-' devant et derrière le champs recherché non? Lien vers le commentaire Partager sur d’autres sites More sharing options...
captain_torche Posté 3 Janvier 2007 Partager Posté 3 Janvier 2007 Woops, j'avais pas fait gaffe Lien vers le commentaire Partager sur d’autres sites More sharing options...
DuR0 Posté 3 Janvier 2007 Auteur Partager Posté 3 Janvier 2007 Il reste un soucis. Les type ne sont pas du tout compatible... '-' ! varchar pour SQL server et lecture_sujet_forum est du text... Comment faire pour les concaténer? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Portekoi Posté 3 Janvier 2007 Partager Posté 3 Janvier 2007 Bonjour, Essaie avec un convert(varchar(6000), lecture_sujet_forum). Je ne me souviens plus de la syntaxe d'un convert avec mysql Portekoi Lien vers le commentaire Partager sur d’autres sites More sharing options...
DuR0 Posté 3 Janvier 2007 Auteur Partager Posté 3 Janvier 2007 Merci Portekoi, ta fonction... fonctionne Mais malheureusement ma requête donne des résultats assez farfelu Voila le SQL : SQLe = "Select * FROM SelSCatForum Where id_scat_f = " & RSs.fields("id_scat_f") & " AND EXISTS (Select * from SelSujetForum Where id_scat_f = SelSCatForum.id_scat_f AND '-' + convert(varchar(6000), lecture_sujet_f) + '-' like '%-" & Session("id_m") & "-%')" Explication : J'aimerai savoir pour une catégorie donnée (RSs.fields("id_scat_f")) s'il existe un sujet que le membre (Session("id_m")) n'a pas encore lu, cad dont l'id membre ne se trouve pas dans la chaine de caractère "lecture_sujet_f". Après avoir fait cette requête : * Si elle renvoit 0 resultat c'est que le membre -> pas de nv sujet * Si elle renvoit >0 ->nv sujet Lien vers le commentaire Partager sur d’autres sites More sharing options...
DuR0 Posté 3 Janvier 2007 Auteur Partager Posté 3 Janvier 2007 Résolu : * Pourquoi est ce que j'utilisais exist alors que je n'avais que 1 resultat dans la requête externe * Pour savoir s'il y a un nouveau sujet il faut savoir si le nombre de resultat de la requete audessu est inférieur au nombre total de résultat. Voilà Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant