2017-09-17 14 views
0

私はsqliteデータベースでCOLLATE NOCASEを使用してSQLクエリを実行しました。ユーザ入力が大文字または小文字のいずれかを無視してデータを取得するようにしましたが、実際には機能しません。 Place1とPlace2には、Bagmati、Basantapurのようなデータがありますが、ユーザーがPlace1をBagmatiとして入力すると、データは出力されません。SQLiteのCOLLATE NOCASE

public String getTaxiDistance(String name, String depart){ 
     String [] columns = {"fare"}; 

     c = db.rawQuery("select Distance from TaxiFinalData where Place1 = '"+name+"' COLLATE NOCASE and Place2 = '"+depart+"' COLLATE NOCASE or Place1 = '"+depart+"' COLLATE NOCASE and Place2 = '"+name+"'COLLATE NOCASE", new String[]{}); 


     StringBuffer buffer = new StringBuffer(); 
     while(c.moveToNext()){ 

      String employyename = c.getString(0); 


      buffer.append(employyename+""); 
     } 

     return buffer.toString(); 

    } 
+0

[Works for me](http://sqlfiddle.com/#!5/cdf2f/2)。 'name'と' depart'の実際の値と、一致するはずのテーブル行を表示します。 –

答えて

-1

あなたのリクエストですべてを大文字に変換することができます。これがトリックです!

c = db.rawQuery("select Distance from TaxiFinalData where upper(Place1) = upper('"+name+"') and upper(Place2) = upper('"+depart+"') or upper(Place1) = upper('"+depart+"') and upper(Place2) = upper('"+name+"')", new String[]{}); 
関連する問題