在 SQL JOIN 中使用 LIKE
在 SQL 中,執行 JOIN 操作通常需要指定不同表的列之間的匹配條件。其中一個條件涉及將表 A 中的列與表 B 中的列進行匹配,其中 B 列的內容可以在 A 列的內容之前或之後變化。這種情況需要使用 LIKE 運算子。
要實現此目的,您有多種選擇:
<code class="sql">SELECT * FROM TABLE a JOIN TABLE b ON INSTR(b.column, a.column) > 0</code>
這裡,INSTR () 傳回第一個的位置A 列的值出現在B 列中。匹配行是位置大於 0 的行。
<code class="sql">SELECT * FROM TABLE a JOIN TABLE b ON b.column LIKE '%'+ a.column +'%'</code>
此方法將通配符附加到A 列值的兩側,允許在B 列中在其之前或之後添加任何字元。
<code class="sql">SELECT * FROM TABLE a JOIN TABLE b ON b.column LIKE CONCAT('%', a.column ,'%')</code>
與先前的方法類似,此方法使用CONCAT() 函數在A 列值的兩側建構一個帶有通配符的字串。
為了確保不區分大小寫的匹配,它是建議在比較之前將兩列轉換為大寫。這可以透過使用 UPPER() 函數來實現。
請注意,最有效的方法將取決於所涉及的特定資料庫和數據,這是透過檢查 EXPLAIN 計畫輸出來確定的。
以上是當符合條件涉及一個表中的列包含另一個表中的列的子字串時,如何執行 JOIN 操作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!