[SQL] [champ 1] LIKE [champ 2]% ?

Fermé
Laaris Messages postés 130 Date d'inscription mardi 1 avril 2008 Statut Membre Dernière intervention 17 juin 2011 - 14 mai 2008 à 15:07
angel lestat Messages postés 233 Date d'inscription jeudi 26 avril 2007 Statut Membre Dernière intervention 17 mars 2015 - 27 nov. 2013 à 15:15
Bonjour,

Je voudrais savoir si on peut utiliser le comparateur LIKE entre deux champs.

Dans mon cas précis j'ai des noms de plantes du style "Agrostis truncatula Parl. subsp. commista"

Dans une de mes tables, un attribut contient ce genre de noms. Dans une autre, un attribut contient également des noms de plantes mais pas forcément complets, exemple: "Agrostis truncatula Parl." Pourtant je veux considérer que ces deux plantes sont les mêmes.
Encore pire, dans certains cas, dans le même attribut on trouve le nom de la plante et le nom de la personne qui l'a décrit la première fois, exemple: "Agrostis truncatula Parl. subsp. commista Castroviejo & Charpin" (je sais c'est mal foutu mais je peux pas faire autrement).

Bref je voudrais pouvoir comparer mes champs de façon à pouvoir associer ces différents noms qui indiquent en fait une seule plante.

J'ai essayé quelque chose comme ça:

SELECT [Table 1].[Nom Taxon]
FROM [Table 1],[Table 2]
WHERE [Table 1].[Nom Taxon] LIKE [Table 2].[Nom Taxon]%;


Mais ça ne fonctionne pas.

Si ce n'est pas avec LIKE, comment peut-on comparer le contenu de deux champs qui se ressemblent?

Merci d'avance

2 réponses

Laaris Messages postés 130 Date d'inscription mardi 1 avril 2008 Statut Membre Dernière intervention 17 juin 2011 73
14 mai 2008 à 16:30
Après réflexion je pense que c'est normal que ma requête ci-dessus ne marche pas.

J'ai donc essayé autre chose:

SELECT [Table 1].[Nom Taxon] AS name
FROM [Table 1]
WHERE EXISTS (SELECT [Table 2][Nom Taxon] FROM [Table 2] WHERE name LIKE [Table 2].[Nom Taxon]*);


Mais ça ne marche pas non plus :'-(

Quelqu'un a-t-il une idée?
1
Bonsoir,

Je pense que depuis tu as dû trouver une solution, mais au cas zou, tu peux essayer cela :

SELECT [Table 1].[Nom Taxon]
FROM [Table 1],[Table 2]
WHERE [Table 1].[Nom Taxon] LIKE '%'&[Table 2].[Nom Taxon]&'%';

Voili, voilou
@ pluche
0
angel lestat Messages postés 233 Date d'inscription jeudi 26 avril 2007 Statut Membre Dernière intervention 17 mars 2015 14
27 nov. 2013 à 15:15
tu peux aussi tester ceci
SELECT [Table 1].[Nom Taxon]
FROM [Table 1] inner join[Table 2]
on [Table 1].[Nom Taxon] LIKE concat('%',[Table 2].[Nom Taxon],'%');
0
Pascal Boulerie2 Messages postés 6 Date d'inscription vendredi 27 novembre 2009 Statut Membre Dernière intervention 6 juillet 2012 15
2 juin 2010 à 16:34
Utilisez CONCAT :
http://dev.mysql.com/doc/refman/5.0/fr/string-functions.html
-1