Rechercher : dans
Par :

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

Dernière réponse le 22 oct 2009 à 22:34:58 Laaris, le 14 mai 2008 à 15:07:29 
 Signaler ce message aux modérateurs

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
Configuration: Windows XP
Firefox 2.0.0.14

Meilleures réponses pour « [SQL] [champ 1] LIKE [champ 2]% ? » dans :
SQL - éviter les doublons dans un SELECT VoirProblème Comment éviter les doublons dans les résultats d'une requête SQL ? Solution Il suffit d'utiliser la clause DISTINCT entre SELECT et les champs. Exemple : SELECT distinct id,nom,prenom FROM matable Plus d'informations ...
SQL - Création de table VoirLe SQL, comportant un langage de définition de données (LDD), permet de créer des tables. Pour cela, il utilise le couple de mots clés CREATE TABLE. La création de tables Le création de tables se fait à l'aide du couple de mots-clés CREATE...
Le langage SQL VoirQu'appelle-t-on SQL? SQL (Structured Query Language, traduisez Langage de requêtes structuré) est un langage de définition de données (LDD, ou en anglais DDL Data Definition Language), un langage de manipulation de données (LMD, ou en anglais DML,...
SQL - Restriction VoirExpression des restrictions Une restriction consiste à sélectionner les lignes satisfaisant à une condition logique effectuée sur leurs attributs. En SQL, les restrictions s'expriment à l'aide de la clause WHERE suivie d'une condition logique...

1

Laaris, le 14 mai 2008 à 16:30:43

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?

Répondre à Laaris

2

 Kyrian, le 22 oct 2009 à 22:34:58

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

Répondre à Kyrian
Collection CommentÇaMarche.net