Version complète: sur le forum Webmaster Hub : Like entre 2 champs
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > SQL
Portekoi
Bonjour,

J'ai 2 champs : RUE et NOM.

J'aimerais faire une requete pour trouver les rues qui contiennent le NOM.

Mais pour la syntaxe, je sèche... une idée?


Portekoi
captain_torche
SQL
SELECT * FROM tatable WHERE Rue LIKE '%Nom%'


Ca ne marche pas, çà ?
Portekoi
Non, il le prend comme une chaine de caractère sad.gif
captain_torche
heu, je comprends pas ... le contenu de ton champ non, c'est quoi ?
Portekoi
Exemple :

RUE = M. Captain_Torche 3 Rue du moulin
Nom = Captain_Torche

Donc là, la requête doit me remonter quelque chose smile.gif
kazhar
CODE
SELECT `champs`
FROM `table`
WHERE MATCH (`Rue`) AGAINST (`Nom`);


Pas testé mais ça devrait fonctionner.
Portekoi
il ne semble pas connaitre la commande MATCH et AGAINST . Je suis sous DB2 mais sous SQL Server aussi j'ai une erreur...
blman
En PHP/MySQL, ça ferait :
mysql_query("SELECT * FROM tatable WHERE Rue LIKE '%".$Nom."%'");

Pour ce qui est de la requête proposée par Kazhar, il faut qu'il y ait un INDEX FULLTEXT sur le champ sur lequel la requête se fait.

Mais sous DB2, je connais pas, mais il doit y avoir un équivalent à la requête proposée par captain_torche
Dan
D'accord avec Kazhar et Blman ...
CODE
MATCH (col1,col2,...) AGAINST (expr [IN BOOLEAN MODE | WITH QUERY EXPANSION])

nécessite la recherche en texte intégral (FULL-TEXT) dans mysql (à partir de la version 3.23.23)

Par contre, pour DB2 je l'ignore...
Portekoi
@blman : Oui mais le but est de passer uniquement par du SQL smile.gif

@Dan : Ok, je vais ca demain au boulot si je trouve un équivalent dans la doc wink.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.