2013-12-20 22 views
0

我想從下表返回同一行多次,如果搜索字符串2列相匹配 - Mysql的

id | string1 | string2 

    1 | mysql | php 

    2 | mysql | mysql 

    3 | python | java 

查詢我試圖

SELECT id, string1 
    FROM test 
    WHERE string1 LIKE '%mysql%' or string2 LIKE '%mysql%' 

如果我搜索顯示結果表中的字符串'mysql'來自列string1和string2,我想得到結果爲

1 mysql 

2 mysql 

2 mysql 

Row id 2 shoul d顯示多次,因爲'mysql'出現在2列(string1和string2)中。

有沒有像上面的結果列出任何可行性。

注:我不想使用UNION ALL

感謝

+0

你可以請你把你的mysql查詢在這裏 –

+3

我很害怕唯一的SQL解決方案將使用'UNION ALL'。你會接受PHP和MySQL的混合來達到這個目的嗎? –

+0

用查詢編輯 –

回答

0

你可以寫兩個單獨的查詢,然後使用UNION ALL關鍵字加入他們的行列。像下面這樣:

SELECT id, string1 
FROM test 
WHERE string1 LIKE '%mysql%' 

UNION ALL 

SELECT id, string2 
FROM test 
WHERE string2 LIKE '%mysql%'; 
+0

@ jai-lalawat如果我們不使用UNION ALL,那麼解決方案是什麼? –

+1

是的,你是對的聯盟所有對這個問題都有好處。 –

相關問題