2015-12-09 40 views
2

我只想用單詞顯示說明ROMEO JULIET即使它不按時間順序排列。使用LIKE即使不按時間順序查找2個單詞

ID DESC 
1 This is a sample sentence created by romeo and juliet 
2 This is a sample sentence with romeo juliet. 
3 romeo and juliet. 
4 How to query romeo juliet word. 
5 This is not included because there no name here. 

在上面的示例中,我想顯示id爲1到4,因爲它包含單詞romeo juliet。

我該如何使用LIKE?

我試圖下面查詢

SELECT DESC FROM TableName WHERE DESC LIKE '%ROMEO JULIET%' 

但結果是唯一ID 2中,由於在名稱ID 1,3和4是不按時間順序。

在此先感謝。

+1

嘗試'選擇從DESC WHERE表名DESC LIKE '%羅密歐朱麗葉%%'' – Sachu

+1

時間順序?問題中的時間元素在哪裏? –

回答

6

您正在尋找在那裏你搜索羅密歐與朱麗葉

聲明

您可以在SQL編寫類似這

SELECT... WHERE DESC LIKE '%romeo%' AND DESC LIKE '%juliet%'

+0

它會返回,如果文本包含羅密歐或juliet – bmsqldev

+1

@bmsqldev否,因爲你需要'或'而不是'和'。查詢的其餘部分仍然是一樣的 – Ward

+0

@WardC,這是最好的..我會將此標記爲答案..非常感謝您的幫助。 – Japongskie

1

如果u要顯示其romeo'juliet'

遞減試試這個

SELECT DESC FROM TableName WHERE DESC LIKE '%ROMEO%JULIET%' 
+0

@wardc不明白 – Sachu

+0

你的查詢不會找到'如何查詢朱麗葉羅密歐詞'。我解釋了OP'即使不按照時間順序'那樣。也許我錯了 – Ward

3

你可以問兩個組合:

SELECT DESC 
FROM TableName 
WHERE DESC LIKE '%ROMEO%JULIET%' 
OR DESC LIKE '%JULIET%ROMEO%' 
+2

@ WardC的答案是更好的,因爲它可以很容易地擴展到更多的單詞,而這需要更多的3字(6條件),或4(24條件)等寫作 – marmarta

+1

此外,大多數數據庫將有更好的性能與AND比OR(因爲每個語句都會減小結果集而不是使它變大) – Ward

+1

是啊@marmarta和WardC是正確的。我剛剛回答了這個問題。但是關於性能和可伸縮性你是對的。 – antorqs