开发者

Trying to write a query with LIKE and a variable with content

int FROMcountryChooseId=10;
String ToConvert = (EditView)findViewById(R.id.NumberEditView); 
String query="SELECT DISTINCT trim(Country.Country) FROM Country,DCI WHER开发者_如何学JAVAE Country.CountryN°= "+FROMcountryChooseId+ " AND Country.Country LIKE "+"'&ToConvert&'"+" AND DCI._ID=Medicaments.DCIN° ORDER BY DRUG ASC LIMIT 1000;";

myDataBase.rawQuery(query, selectionArgs)

Hi i don't know how to make my query recognize wordToConvert as variable that content something and not just a String.

Any idea how to do that??

thanks for helping


You should use SQLiteDatabase.rawQuery to perform proper string substitutions.

sqliteDatabase.rawQuery(
          "SELECT DISTINCT trim(Country.Country)
                     FROM Country,DCI
                    WHERE Country.CountryN°= ?
                      AND Country.Country LIKE ?
                      AND DCI._ID=Medicaments.DCIN°
                    ORDER BY DRUG ASC
                    LIMIT 1000",
          new String[] {
              Integer.toString(FROMcountryChooseId),
              "%" + ToConvert + "%"
          });

Just place a ? where your literals go, and set the corresponding value in the string array. Android will properly escape and quote the value, so you do not need to pre-process it in any way.

In this case, a LIKE expression is just a literal like any other.

Note that semicolons are not needed here, as multiple statements are not supported.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜