sqlite - How to write IN type query in android(pre-populated database) -
i have query in have multiple in statements.
query
select tcf.car_make,tcf.car_model,tcf.car_ver,prices,rear_parking_sensors,airbags,engine_immobilizer,power_windows,integrated_in_dash_music_system,steering_adjustment car_feature tcf join car_spec tcs tcf._id=tcs._id , tcs.prices between '0' , '80,00,00,000' , tcs.fuel_type in("petrol","diesel","null","null") , tcf.car_make in("null","null","null","null","null","null","null","force motors","ford","hindustan motors","honda","null","null","lamborghini","land rover","null","null","null","null","null","null","null","null","null","null","null","null","null","null","null")
my query works fine when execute in sqlite browser.
but when try execute same query in helper class using db.execsql() statement doesn't work.
my logcat shows error
07-31 05:06:03.085: e/androidruntime(334): caused by: android.database.sqlite.sqliteexception: unknown error: queries cannot performed using execsql(), use query() instead.
it says use db.query() statement.
the confusion how use in statement in db.query()
can please me.
the documentation states cannot use sqlitedatabase.execsql() perform select or other sql statement returns data. sqlitedatabase.execsql() doc:
execute single sql statement not select or other sql statement returns data. has no means return data (such number of affected rows). instead, you're encouraged use insert(string, string, contentvalues), update(string, contentvalues, string, string[]), et al, when possible.
edit: can use rawquery() form parameterized query in:
string query = "select * table" + " name in ("+ createplaceholders(names.length) +")"; cursor c = db.rawquery(query, names);
in case let's assume createplaceholders() returns string containing names.length comma separated '?'.
Comments
Post a Comment