2014-02-19 175 views
0

我有以下查詢:搜索欄

SELECT 
    Table1 . * 
FROM 
    Table1 
     inner JOIN 
    Table2 ON Table1.Column1 = Table2.Column2 

我想改變查詢發現,不僅Table1.Column1之間的macth到Table2.Column2但找到的所有數據,其中Table1.Column1裏面Table2.Column2字符串。

我需要做什麼?

+2

只注意到這個被標記MySQL和SQL服務器,這是什麼呢? – OGHaza

回答

0

更改ON子句

SqlServer的

ON Table2.Column2 LIKE '%'+Table1.Column1+'%' 

MySQL的

ON Table2.Column2 LIKE CONCAT('%',Table1.Column1,'%') 
2

如何像

SELECT 
    Table1 . * 
FROM 
    Table1 
     inner JOIN 
    Table2 ON Table1.Column1 LIKE CONCAT('%',Table2.Column2,'%') 
0

試試這個

SELECT 
    Table1.* 
FROM 
    Table1 
     inner JOIN 
    Table2 ON T Table2.Column2 Like '%' + Table1.Column1 + '%' 
2

如果是SQL SERVER,使用CHARINDEX

SELECT 
Table1 . * 
FROM 
Table1 
    inner JOIN 
Table2 ON CHARINDEX(Table1.Column1, Table2.Column2) > 0 
+0

查詢結束時> 0是什麼? – Popa

+0

如果CHARINDEX無法在要搜索的字符串中找到指定的文本,則回退0。如果找到該文本,它將返回該文本的位置。 > 0確保只有那些記錄組合顯示在Table2.Column2中找到Table1.Column1的位置 –