Выберите запрос в SQLite в Android с двумя значениями в предложении, где - PullRequest
1 голос
/ 13 марта 2011

Я хочу написать запрос в sqlite для Android, в котором я хочу получить значение, основанное на двух значениях этой строки. Как я могу это сделать? у меня есть следующий запрос, чтобы получить значение на основе одного значения:

cursor = db.query(TABLE_NAME,new String[] {NAME}, ROLL_NO + " like" + "'%" 
                + roll + "%'", null, null, null, null);

Ответы [ 4 ]

2 голосов
/ 13 марта 2011

попробуйте

cursor = db.query(TABLE_NAME,new String[] {NAME}, ROLL_NO + " like" + "'%" + roll + "%' **OR** ", null, null, null, null)

добавьте ваше второе предложение после ИЛИ в запросе выше

1 голос
/ 13 марта 2011

КСТАТИ. Ребята, вы задумывались о безопасности БД (атака с использованием SQL-инъекций)? Если roll является чем-то, что вводит пользователь, или вы получаете его из потенциально «опасного» источника (файла или сети), то я бы порекомендовал переписать код следующим образом:

db.query(
  TABLE_NAME,
  new String[] {NAME}, 
  ROLL_NO + " like " + "'%?%'",
  new String[] { String.valueOf(roll) },
  null, null, null
);

Таким образом, БД будет «предварительно обрабатывать» значение roll перед выполнением запроса, чтобы убедиться, что это значение безопасно для использования. Безопасное значение будет затем вставлено вместо символа ? в операторе ROLL_NO + " like " + "'%?%'".

0 голосов
/ 07 июня 2017

Просто попробуйте этот actid, cusid - это строка, а FF_CUSTOMER_ID, FF_ACTIVITY_ID - это имя столбца

Курсорный курсор = db.rawQuery ("выберите * из" + TABLE_PROJECT_ACTIVITY_CHECKLIST + "где" + FF_ACTIVITY_ID ="+ FF_CUSTOMER_ID +" =? ", Новая строка [] {actid, cusid});

0 голосов
/ 16 мая 2012

Спасибо. У меня работал следующий код:

public Cursor fetchMyValues() {
String DATABASE_TABLE="mytablename";
String depthVar="'50'";
String tempVar="'2.5'";
return mDb.query(DATABASE_TABLE, new String[] {"_id", "depth", "temp", "health"}, 
          "temp like " + tempVar + " AND " + "depth like" + depthVar, null, null, null, null);}

Это будет представлять мой sql: выберите здоровье из mytablename, где temp = '2.5' и глубина = '50 ';

хммм .... Я полагаю, что я мог бы сделать это чище с int и / или double, используя = вместо like.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...