当前位置: 代码迷 >> Android >> SQLiteDatabase中的替换符‘?’不管用,该怎么解决
  详细解决方案

SQLiteDatabase中的替换符‘?’不管用,该怎么解决

热度:44   发布时间:2016-04-27 22:58:50.0
SQLiteDatabase中的替换符‘?’不管用
想要用rwaquery()函数进行模糊查询,下面的语句可以:
Cursor c = db.rawQuery(
"select * from " + table + " where " + fuzzyColumn
+ " like '%" + fuzzyArgs + "%';", null);

但是凡是有替换符‘?’加入就不行了,下列语句都不行:
Cursor c = db.query(table, null, "? like '20'", new String[]
 {"linename"}, null, null, null);

Cursor c = db.rawQuery("select * from bus_line where ? like '%20%';",
 new String [] {fuzzyColumn});

	String sql = "select * from " + table + " where " + fuzzyColumn +" like ?";
String [] selectionArgs = {"'%20%'"};
Cursor c = db.rawQuery(sql, selectionArgs);

------解决思路----------------------
问号不能用于列名吧。
------解决思路----------------------
/**
 * 插入操作
 */
public void insert(String table, Object[] params) {

try {
String sql_select = "insert into "
+ table
+ "(city, date, img, temperature, wind, weather) values(?, ?, ?, ?, ?, ?)";
database.execSQL(sql_select, params);
} catch (Exception e) {
e.printStackTrace();

}


------解决思路----------------------
params数组有六个值,就是对应六个问号的(占位符)
------解决思路----------------------
没试过谁列名拿来置位的,你试下这样行不行:Cursor c = db.query(table, null, " '?' like '20'", new String[]
         {"linename"}, null, null, null);