2017-08-29 87 views
-3

所以我想搜索使用單詞「根植」或「UNROOT」從我的數據庫中的單詞「ROOT」。我可以在SQLite中執行「反向」LIKE操作嗎?

我希望我不是被誤解爲想要執行該正常運行一樣

SELECT Word FROM tblWordList WHERE Keywords LIKE '%ROOT%' 

我要反其道而行之,所以如果我有「OOT」或「ROO」數據庫當我輸入「ROOTED」時,它也會被搜索到。

我實際上在列關鍵字中有單詞ROO和OOT。但也有其他一些詞,如SAM,MOON,RIP。現在我想在列Word中搜索Value,或者只是說出ROOTED的子串出現的行的ID。在這種情況下,我應該得到ROO和OOT行的ID。

android + sqlite的代碼會很棒,但即使是操作的命令也會非常有幫助。

+3

這不是「相反」,你可以更清楚嗎? – kenfire

+0

該列是否只包含*'ROO' /'OOT'? – Kayaman

+0

您應該調查SQL運算符LIKE是如何工作的。 –

回答

1
SELECT Word FROM tblWordList WHERE Keywords LIKE '%ROO%' OR Keywords LIKE '%OOT%' 

您將需要拿出自己的算法,以確定哪些特別是你要使用的搜索詞(ROOTED)的子集。

+0

我實際上在列關鍵字中有單詞ROO和OOT。但也有其他的詞,如SAM,MOON,RIP。現在我想在列Word中搜索Value,或者只是說出ROOTED的子串出現的行的ID。在這種情況下,我應該得到ROO和OOT行的ID。 –

+0

@McDuran:正如我寫的,您需要提出自己的算法來確定要使用的搜索項('ROOTED')的特定子集。沒有SQL操作符爲您正在尋找。 – CommonsWare

0

當你想匹配的值OOTROOTED,將要與這些特定值應該是這樣的:

'ROOTED' LIKE '%OOT%' 

因此,如果第一個是一個恆定值,而第二個來自於數據庫,只是這樣寫:

SELECT ... WHERE 'ROOTED' LIKE '%' || Keywords || '%'; 
+0

您可以請詳細說明您的答案: 我試圖使用此命令: 從tbl信息的選擇ID WHERE'tommen'LIKE'%'||關鍵詞|| '%'; 即使在關鍵字中存在3行的子字符串'tommen'存在時(tommening,tommens,stommeny),它也返回了0個結果。 我想要實現的是甚至包含'tommen'的子串的行,比如'tom'或'men'或'mme'的行在我執行查詢時會出現。 –

+0

這不是你問的問題。請注意,空字符串也是一個子字符串,因此您的描述將匹配所有行。 –

+0

對不起,如果我不清楚。我真的很難用英語解釋。我意識到你對空串的評論是真實的。但是,仍然有一種方法可以執行此操作,只是在匹配只是空字符串的情況下過濾結果? –

相關問題