我有以下表SQLite的查詢功能對多行
---------------------------------------
id, type, keyword, default
---------------------------------------
1, 1, mcdonalds, 1
2 1, food, 0
3, 1, drinks, 0
4, 2, vending machine, 1
5, 2, drinks, 0
6, 3, station, 1
7, 3, travel, 0
8 3, train, 0
這背後的想法是,我想要一個檢索算法查詢returing關鍵字「獨特的」類型(默認行),所以當我搜索麥當勞,我得到第一排,但是當我搜索食物或飲料時,我也獲得了第一排。
我已經做了這個使用子選擇。
SELECT type, keyword FROM keywords WHERE type IN (SELECT DISTINCT type FROM keywords WHERE keyword like '%?%') AND `default`=1
;
這個工程就像一個魅力,然而現在我希望能夠給多個關鍵字,例如「飲料&食」我曾嘗試
SELECT type, keyword FROM keywords WHERE type IN (SELECT DISTINCT type FROM keywords WHERE keyword like '%?%' OR keyword like'%?%') AND `default`=1
;
但是當我搜索「食品&飲料「在這種情況下,我會同時獲得」自動售貨機「和」麥當勞「。然而,自動販賣機只有一個關鍵詞「飲料」(它不供應食物)所以我不希望那個在我的結果。
當我做'AND'而不是OR時,我根本沒有結果(因爲一行不能同時有兩個值)。
有沒有人對我如何解決這個問題有任何建議?
您的查詢也總是返回一條記錄,如果添加3個關鍵字AND AND IN(SELECT DISTINCT類型FROM關鍵字WHERE關鍵字,例如'%station%')'它不返回 – cetver
如果有兩個關鍵字匹配的類型,它將返回兩條記錄。 –
是的,這個工作挺有用,但不是我在找的東西,當我現在尋找像「e d」這樣的東西時,它會像所有東西一樣顯示,因爲類似的東西太貪婪。 – Matthijn