[résolu] mysql et regexp
12 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
[résolu] mysql et regexp
bonjour,
j'ai une table article avec deux champs : art_titre et art_texte
j'ai un nom de société $ent_nom
je cherche à trouver dans ma table article les articles qui citent cette société. pour cela , je recherche la chaine de caractere ent_nom dans mon art_titre et art_texte, mais en ignorant les articles dans lequel ma chaine est précédé ou suivie d'un caractere compris entre A et Z (pour, par exmple, si j'ai une société qui s'appelle CCI, que cela ne me ressorte pas un article contenant le mot "accident")
ma requete est :
$requete2="select * from articles where (art_titre like \"%$ent_nom%\" and art_titre NOT REGEXP \"[a-z]".$ent_nom."[a-z]\") or (art_texte like \"%$ent_nom%\" and art_texte NOT REGEXP \"[a-z]".$ent_nom."[a-z]\")";
vous semble-t-elle correcte ?
j'ai une table article avec deux champs : art_titre et art_texte
j'ai un nom de société $ent_nom
je cherche à trouver dans ma table article les articles qui citent cette société. pour cela , je recherche la chaine de caractere ent_nom dans mon art_titre et art_texte, mais en ignorant les articles dans lequel ma chaine est précédé ou suivie d'un caractere compris entre A et Z (pour, par exmple, si j'ai une société qui s'appelle CCI, que cela ne me ressorte pas un article contenant le mot "accident")
ma requete est :
$requete2="select * from articles where (art_titre like \"%$ent_nom%\" and art_titre NOT REGEXP \"[a-z]".$ent_nom."[a-z]\") or (art_texte like \"%$ent_nom%\" and art_texte NOT REGEXP \"[a-z]".$ent_nom."[a-z]\")";
vous semble-t-elle correcte ?
Dernière édition par e-kiwi le Ven Aoû 04, 2006 9:27, édité 1 fois.
siddhy a écrit:Bonjour,
et si tu met un espace dans le like : like "% $ent_nom %" ?
Tu n'aurais plus besoin des regexp..
Non?
like "% $ent_nom %" or like "$ent_nom %" or like "% $ent_nom"
couvre presque toutes les éventualités.
Sinon en théorie tu peux utiliser \w (caractère de mot), \W (pas de caractère de mot), plutôt que NOT REGEXP, ou bien ^\w+ qui marchent bien en php (j'ignore si ça fonctionne pour mysql).
siddhy et Tilt, ca n'est pas bon
siddhy, c'est écrit dans mon message :
>> si j'ai une société qui s'appelle CCI, que cela ne me
>> ressorte pas un article contenant le mot "accident"
Tilt> il suffit que la chaine commence le mot ou le termine et ca ne marches pas
mais c'est bon, j'ai trouvé ce qui marche TOUT LE TEMPS :
$requete2="select * from articles where (art_titre like \"%$ent_nom%\" and art_titre NOT REGEXP \"[a-z]".$ent_nom."[a-z]\" and art_titre NOT REGEXP \"".$ent_nom."[a-z]\" and art_titre NOT REGEXP \"[a-z]".$ent_nom."\") or (art_texte like \"%$ent_nom%\" and art_texte NOT REGEXP \"[a-z]".$ent_nom."[a-z]\" and art_texte NOT REGEXP \"".$ent_nom."[a-z]\" and art_texte NOT REGEXP \"[a-z]".$ent_nom."\")";
siddhy, c'est écrit dans mon message :
>> si j'ai une société qui s'appelle CCI, que cela ne me
>> ressorte pas un article contenant le mot "accident"
Tilt> il suffit que la chaine commence le mot ou le termine et ca ne marches pas
mais c'est bon, j'ai trouvé ce qui marche TOUT LE TEMPS :
$requete2="select * from articles where (art_titre like \"%$ent_nom%\" and art_titre NOT REGEXP \"[a-z]".$ent_nom."[a-z]\" and art_titre NOT REGEXP \"".$ent_nom."[a-z]\" and art_titre NOT REGEXP \"[a-z]".$ent_nom."\") or (art_texte like \"%$ent_nom%\" and art_texte NOT REGEXP \"[a-z]".$ent_nom."[a-z]\" and art_texte NOT REGEXP \"".$ent_nom."[a-z]\" and art_texte NOT REGEXP \"[a-z]".$ent_nom."\")";
Par contre il me semble que la réponse de Tilt n'était pas mauvaise..
like "% $ent_nom %" pour les chaines au milieu
like "$ent_nom %" pour les chaines au début
like "% $ent_nom" pour les chaines en fin
Manque plus que le Pb de la ponctuation (par ex :virgule après ta chaine ou point ou ...) a traiter
(ça serait peut être plus rapide ?)
Bon, tu nous tiens au courant pour ta requête ? (dans 42 mn...)
Tilt a écrit:like "% $ent_nom %" or like "$ent_nom %" or like "% $ent_nom"
like "% $ent_nom %" pour les chaines au milieu
like "$ent_nom %" pour les chaines au début
like "% $ent_nom" pour les chaines en fin
Manque plus que le Pb de la ponctuation (par ex :virgule après ta chaine ou point ou ...) a traiter
(ça serait peut être plus rapide ?)
Bon, tu nous tiens au courant pour ta requête ? (dans 42 mn...)
Dernière édition par siddhy le Ven Aoû 04, 2006 8:47, édité 1 fois.
12 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Gestion des langues et des sessions en PHP / MySQL
- Ecrire un sitemap pour Google News
- Passage à l'heure d'été/hiver sur un forum phpBB
- GoogleStats : analyse temps réel des visites de Google sur votre site
- Sortie officielle de GoogleStats v2.0 !
- AdSense Tracking : statistiques détaillées sur les clics AdSense
- Le WRInaute du moment
- Interview Wikio : transcript du chat WebRankInfo
- Googlebot, le robot d'indexation de Google
- résolu : bug de regexp sur WRI
- [Résolu]- Requête MySql
- [Résolu] RAND et Mysql
- [résolu] mysql à distance
- [resolu]Mysql - optimisation
- [résolu]Mysql et doublon
- [Resolu] Impossible de lancer mysql!
- [mysql] Recherche sensible à la case [resolu]
- [Résolu] MySQL lier 2 tables
- [résolu] php mysql tutoriel
- [Résolu] Mysql : Select avec un except
- Résolu:: Connexion distante mysql
- [résolu] Erreur mySQL no 1054
- [Résolu] Mot de passe et Mysql
- [résolu] Export Excel -> MySql
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités







le forum