DuR0 Posté 2 Janvier 2007 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!
froidure_nicolas Posté 2 Janvier 2007 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.
captain_torche Posté 3 Janvier 2007 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 ...
Portekoi Posté 3 Janvier 2007 Posté 3 Janvier 2007 Bonjour, Pourquoi faire compliqué? SELECT * FROM ma_table WHERE '-' + lecture_sujet_forum like '%-(id)-%'; Portekoi
captain_torche Posté 3 Janvier 2007 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.
Portekoi Posté 3 Janvier 2007 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?
DuR0 Posté 3 Janvier 2007 Auteur 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?
Portekoi Posté 3 Janvier 2007 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
DuR0 Posté 3 Janvier 2007 Auteur 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
DuR0 Posté 3 Janvier 2007 Auteur 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à
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant