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:
<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.
<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.
<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!