2010-09-29 3 views
4

Я хочу, чтобы запустить этот запрос в Android Применение:SQLite запросов: Выберите запрос с BETWEEN пункт

SELECT field1 FROM table1 
where field1 = ?(enteredField1) AND field2 = ?(enteredField2) 
AND enteredField3 BETWEEN field3 , field4 
; 

мой DB схемы

table1(field1, field2, field3, field4, field5) 

enteredField1, 2, 3 = являются параметрами, который будет проверено.

Я надеюсь, что с моим вопросом ясно.

здесь функция -

public boolean checkData(String task1, String dte1, String startTime1) 
{ 

     // field 1 = task , fiels 2 = dte, field 3 = startHr, field 4 = endHr 
     // enteredField 1,2,3 = task1, dte1, startTime1 
     // here I want to insert the query 

    int a = cursor.getCount(); 
    if(a>0) 
    { 
     return true; 
    } 
    return false; 
} 
+0

Вы спрашивали, был ли ваш вопрос ясен. Боюсь, я не со мной. Вы заявили, что хотите, но не почему вы не можете (что не так, какие результаты вы получаете, каков ваш фактический вопрос?). Кроме того, я не знаю ни одного диалекта SQL с ключевым словом «INBETWEEN» ... вы имеете в виду «МЕЖДУ»? –

+0

Привет, извините за ошибку. – sid

ответ

4

Вы можете использовать SQLiteQueryBuilder, чтобы решить вашу проблему. Ниже приведен пример для вас, надеюсь, что это поможет.

SQLiteQueryBuilder qb = new SQLiteQueryBuilder(); 
SQLiteDatabase db = null; // get your database instance here. 
qb.setTables("table1"); 
qb.appendWhere("field1 = ? AND field2 = ?"); 
qb.query(db, new String[] { "field1" }, "enteredField3 BETWEEN field3 AND field4", 
     new String[] { "enteredField1", "enteredField2"}, null, null, null); 
+0

привет спасибо за вашу помощь. но это дает ошибку времени выполнения. этот конструктор запросов является новым для меня, так что, пожалуйста, объясните мне это. Просто скажите, какие поля должны быть в двойных кавычках. и который должен быть включен. – sid

+0

Вы создали SQliteDatabase? – Tseng

+0

Да, я создал экземпляр SQLiteDatabase. – sid

5

Во-первых, ваш запрос является недействительным. В SQL нет INBETWEEN; использовать BETWEEN:

... test_expr BETWEEN lower_bound_expr AND upper_bound_expr 

Кроме того, запятая не бинарный оператор, который работает в WHERE пунктах; использовать AND вместо:

... WHERE binary_expression_1 AND binary_expression_2 

Выполните запрос с одним из query methods в SQLiteDatabase. Что вы используете, зависит от ваших потребностей; тот, с которым я связан, вероятно, подходит для вас.

Смежные вопросы