尝试使用LIKE和带内容的变量编写查询

时间:2011-03-27 15:14:54

标签: android

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

myDataBase.rawQuery(query, selectionArgs)

您好我不知道如何让我的查询将wordToConvert识别为内容而不仅仅是字符串的变量。

知道怎么做吗?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

您应该使用SQLiteDatabase.rawQuery来执行正确的字符串替换。

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 + "%"
          });

只需放置文字所在的?,并在字符串数组中设置相应的值。 Android将正确转义并引用该值,因此您无需以任何方式预处理它。

在这种情况下,LIKE表达式就像任何其他表达式一样。

请注意,此处不需要分号,因为不支持多个语句。