2016-06-30 5 views
1

私は現在、applictionに検索機能を実装して、ユーザー入力を受け取り、同様の結果をデータベースに照会しています。私は次のデータベースクエリを作成しました。プログラムでsqliteデータベースの中で最も一致するものを検索しますか?

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

明らかに、このクエリには非常に一般的なSQL文が原因で多くの制限があります。たとえば、単語の途中で何か入力を開始すると、データベースに行番号が小さい場合は、最初にリストに表示されます。

この非常に汎用的なSQL文よりもインテリジェントな検索機能を実現するライブラリがありますか?私は、どのようなキーワードが私が探しているこの機能を記述することができるか分からない、そこにアンドロイドのための "検索アルゴリズム"のいくつかのフィールドですか?

+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

関連する問題