Heim  >  Artikel  >  Datenbank  >  Wie können Sie eine JOIN-Operation ausführen, bei der die Übereinstimmungsbedingung eine Spalte aus einer Tabelle betrifft, die einen Teilstring einer Spalte aus einer anderen Tabelle enthält?

Wie können Sie eine JOIN-Operation ausführen, bei der die Übereinstimmungsbedingung eine Spalte aus einer Tabelle betrifft, die einen Teilstring einer Spalte aus einer anderen Tabelle enthält?

Susan Sarandon
Susan SarandonOriginal
2024-10-26 18:29:29383Durchsuche

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?

Verwendung von LIKE innerhalb eines SQL JOIN

In SQL erfordert die Durchführung einer JOIN-Operation häufig die Angabe einer Übereinstimmungsbedingung zwischen Spalten aus verschiedenen Tabellen. Eine dieser Bedingungen besteht darin, eine Spalte aus Tabelle A mit einer Spalte aus Tabelle B abzugleichen, wobei der Inhalt von Spalte B vor oder nach dem Inhalt von Spalte A variieren kann. Dieses Szenario erfordert die Verwendung des LIKE-Operators.

Um dies zu erreichen, haben Sie mehrere Möglichkeiten:

  1. Verwenden von INSTR:
<code class="sql">SELECT *
FROM TABLE a
JOIN TABLE b ON INSTR(b.column, a.column) > 0</code>

Hier gibt INSTR() die Position des ersten zurück Vorkommen des Werts von Spalte A innerhalb von Spalte B. Übereinstimmende Zeilen sind solche, deren Position größer als 0 ist.

  1. Direkte Verwendung von LIKE:
<code class="sql">SELECT *
FROM TABLE a
JOIN TABLE b ON b.column LIKE '%'+ a.column +'%'</code>

Diese Methode fügt Platzhalter an beide Seiten des Werts von Spalte A an, sodass beliebige Zeichen in Spalte B davor oder danach stehen können.

  1. Verwendung von LIKE mit CONCAT:
<code class="sql">SELECT *
FROM TABLE a
JOIN TABLE b ON b.column LIKE CONCAT('%', a.column ,'%')</code>

Ähnlich wie beim vorherigen Ansatz erstellt diese Methode mithilfe der CONCAT()-Funktion eine Zeichenfolge mit Platzhaltern auf beiden Seiten des Werts von Spalte A.

Um sicherzustellen, dass bei der Übereinstimmung die Groß- und Kleinschreibung nicht berücksichtigt wird, ist dies der Fall Es wird empfohlen, beide Spalten vor dem Vergleich in Großbuchstaben umzuwandeln. Dies kann durch die Verwendung der UPPER()-Funktion erreicht werden.

Beachten Sie, dass die effizienteste Methode von der spezifischen Datenbank und den beteiligten Daten abhängt, wie durch die Untersuchung der EXPLAIN-Planausgabe ermittelt.

Das obige ist der detaillierte Inhalt vonWie können Sie eine JOIN-Operation ausführen, bei der die Übereinstimmungsbedingung eine Spalte aus einer Tabelle betrifft, die einen Teilstring einer Spalte aus einer anderen Tabelle enthält?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn