2016-06-30 43 views
1

我目前在應用程序中實現了搜索功能,以接收用戶輸入並查詢數據庫以獲得類似結果。我創建了以下數據庫查詢:以編程方式在sqlite數據庫中搜索最佳匹配?

String proQuery = "SELECT * FROM " + DATABASE_TABLE + " WHERE " 
       + KEY_NAME + " LIKE '%" + keyword +"%'"; 

很顯然,由於非常通用的sql語句,此查詢有許多限制。例如,如果我開始在單詞的中間輸入內容,它將在列表中首先顯示,如果它在數據庫中具有較低的行號。

是否有庫可以幫助構建比這個非常通用的sql語句更智能的搜索功能?我不確定什麼關鍵字可以描述我正在尋找的功能,有沒有一些「搜索算法」的android領域?

+1

同樣的問題在這裏問:對於SQL最佳匹配(http://stackoverflow.com/questions/18725941/mysql-order-by-最佳匹配) –

+0

是否有第三方庫處理這種邏輯?或者,這更多的是「實施自己,學習如何去」的情況? –

回答

0

也許UNION是你在找什麼:

SELECT * FROM (
    SELECT * FROM table_name WHERE keyname LIKE 'keyword%' ORDER BY keyname 
) alias_t1 

UNION ALL 

SELECT * FROM (
    SELECT * FROM table_name WHERE keyname LIKE '%keyword%' AND keyname NOT LIKE 'keyword%' ORDER BY keyname 
) alias_t2; 
+0

我沒有看到@marzochi評論,但在他的問題最好的答案解決了所有的情況:http://stackoverflow.com/questions/18725941/mysql-order-by-best-match – r3npi2

相關問題