我在使用谷歌搜索這個軟件時遇到了麻煩,但希望對於專家(甚至是中間人)來說不是太棘手。SQLite和房間持久性庫:如何結合IN條件和LIKE?
有沒有辦法在未知數量的多個OR條件中搜索子字符串?
爲Android SQLite的客房持久DAO原來的查詢是:
SELECT country FROM table WHERE country IN (:searchList)
其中,由於[ '法國巴黎',「柏林,德國]的searchList將轉換爲SQL:
SELECT country FROM table WHERE country IN ('Paris, France', 'Berlin, Germany');
而且將返回:「巴黎,法國」,「德國柏林」]
不過,我想能夠僅由國家進行搜索。例如,給定一個['法國','德國']的搜索列表,我不幸得不到結果。
我瞭解以下SQL會做的伎倆:
SELECT country FROM table WHERE country LIKE '%France%' OR country LIKE '%Germany%';
但是,因爲我不知道有多少元素將在searchList,我必須使用原來的格式:
SELECT country FROM table WHERE country IN (:searchList)
有沒有什麼辦法可以在國家/地區列中對子字符串進行上述搜索?
非常感謝您的幫助,
丹
由於機器人源碼(版本)不支持正則表達式搜索查詢時,可能要拆分的列表(:searchList)改爲單個單詞?示例︰https://stackoverflow.com/questions/41678776/substring-for-sqlite-android –
我希望避免splitting searchList,因爲那麼我將不得不執行多個調用數據庫 - searchList的每個元素之一。 – danwag