Maison > base de données > tutoriel mysql > Comment effectuer une correspondance de chaîne partielle dans les jointures SQL à l'aide de LIKE ?

Comment effectuer une correspondance de chaîne partielle dans les jointures SQL à l'aide de LIKE ?

Patricia Arquette
Libérer: 2024-11-03 21:29:29
original
1043 Les gens l'ont consulté

How to Perform Partial String Matching in SQL Joins using LIKE?

Joindre des tables avec LIKE en SQL

Lors de l'exécution d'une jointure, vous pouvez rencontrer des scénarios dans lesquels la condition de correspondance nécessite une correspondance de chaîne partielle à l'aide de LIKE opérateur. Cela implique de faire correspondre une colonne d'une table avec une colonne d'une autre table, où les valeurs correspondantes peuvent être précédées ou suivies de caractères.

Pour résoudre ce problème, vous pouvez utiliser plusieurs approches :

Utilisation d'INSTR :

Cette méthode utilise la fonction INSTR, qui vérifie si une sous-chaîne existe dans une chaîne.

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

Utilisation de LIKE :

Vous pouvez également utiliser l'opérateur LIKE avec des caractères génériques % pour faire correspondre n'importe quel nombre de caractères.

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

Utiliser LIKE avec CONCAT :

Un autre La technique consiste à concaténer les caractères génériques % avec la valeur de la colonne à l'aide de la fonction CONCAT.

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

Correspondance insensible à la casse :

Dans tous les cas, il est recommandé de convertir la colonne les valeurs doivent être mises en majuscules avant la comparaison pour garantir une correspondance insensible à la casse.

<code class="sql">SELECT *
FROM (SELECT UPPER(a.column) 'ua'
         FROM TABLE a) a
JOIN (SELECT UPPER(b.column) 'ub'
         FROM TABLE b) b ON INSTR(b.ub, a.ua) > 0</code>
Copier après la connexion

Le choix de la méthode dépendra de facteurs tels que l'efficacité et la compatibilité de la base de données. Consultez le résultat du plan EXPLAIN pour déterminer l’approche optimale. Notez que la syntaxe JOIN est équivalente à la clause WHERE équivalente.

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