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
Patricia Arquetteoriginal
2024-11-03 21:29:291026parcourir

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>

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>

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>

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>

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!

Déclaration:
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