Maison > base de données > tutoriel mysql > le corps du texte

Comment pouvez-vous effectuer une opération JOIN où la condition de correspondance implique une colonne d'une table contenant une sous-chaîne d'une colonne d'une autre table ?

Susan Sarandon
Libérer: 2024-10-26 18:29:29
original
382 Les gens l'ont consulté

How can you perform a JOIN operation where the matching condition involves a column from one table containing a substring of a column from another table?

Utilisation de LIKE dans un SQL JOIN

En SQL, effectuer une opération JOIN nécessite souvent de spécifier une condition de correspondance entre les colonnes de différentes tables. L'une de ces conditions consiste à faire correspondre une colonne du tableau A avec une colonne du tableau B, où le contenu de la colonne B peut varier avant ou après le contenu de la colonne A. Ce scénario nécessite l'utilisation de l'opérateur LIKE.

Pour y parvenir, vous avez plusieurs options :

  1. En utilisant INSTR :
<code class="sql">SELECT *
FROM TABLE a
JOIN TABLE b ON INSTR(b.column, a.column) > 0</code>
Copier après la connexion

Ici, INSTR() renvoie la position du premier occurrence de la valeur de la colonne A dans la colonne B. Les lignes correspondantes sont celles dont la position est supérieure à 0.

  1. Utiliser LIKE directement :
<code class="sql">SELECT *
FROM TABLE a
JOIN TABLE b ON b.column LIKE '%'+ a.column +'%'</code>
Copier après la connexion

Cette méthode ajoute des caractères génériques des deux côtés de la valeur de la colonne A, permettant à tous les caractères de la précéder ou de la suivre dans la colonne B.

  1. Utiliser LIKE avec CONCAT :
<code class="sql">SELECT *
FROM TABLE a
JOIN TABLE b ON b.column LIKE CONCAT('%', a.column ,'%')</code>
Copier après la connexion

Semblable à l'approche précédente, cette méthode construit une chaîne avec des caractères génériques de chaque côté de la valeur de la colonne A à l'aide de la fonction CONCAT().

Pour garantir une correspondance insensible à la casse, il est Il est recommandé de convertir les deux colonnes en majuscules avant de les comparer. Ceci peut être réalisé en utilisant la fonction UPPER().

Notez que la méthode la plus efficace dépendra de la base de données spécifique et des données impliquées, telles que déterminées en examinant la sortie du plan EXPLAIN.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!