我使用COLLATE NOCASE在sqlite数据库中运行sql查询,这样它就会忽略用户输入是大写或小写并检索数据。但它实际上并不起作用。 Place1和Place2有像Bagmati,Basantapur这样的数据,但是当用户输入Place1作为bagmati时,它就不会提供数据。
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 :(得分:0)
意识到Sqlite中的upper()和lower()仅适用于ASCII码表
答案 1 :(得分:-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[]{});