【发布时间】:2016-02-07 19:55:53
【问题描述】:
mydb.execSQL("CREATE TABLE IF NOT EXISTS customer " + " ( id INT(10) NOT NULL , name_surname VARCHAR (50) NOT NULL , card INT(10) NOT NULL , PRIMARY KEY(id) );");
mydb.execSQL("INSERT INTO customer (id, name_surname , card ) VALUES ('194', 'aaa' , '21' );");
Cursor cursor = ajcinemaDB.rawQuery("SELECT * FROM customer WHERE name_surname=? " , new String[] {"aaa"});
int idColumn = cursor.getColumnIndex("id");
int name_surnameColumn = cursor.getColumnIndex("name_surname");
int cardColumn = cursor.getColumnIndex("card");
cursor.moveToFirst();
if(cursor != null && (cursor.getCount() > 0)){
do {
String id = cursor.getString(idColumn);
String name_surname = cursor.getString(name_surnameColumn);
String card = cursor.getString(cardColumn);
custinfo = custinfo + card + "\n";
}while(cursor.moveToNext());
} else {
Toast.makeText(this, "No Results ", Toast.LENGTH_SHORT).show();
}
为什么这个 where 子句什么也不返回?
此特定子句适用于 id (int),但不适用于 name_surname(varchar)。
我也尝试过常规和原始查询,结果相同。
有什么想法吗?
【问题讨论】:
-
它不是重复的,它是专门关于 rawQuery 和 VARCHAR 的。
-
是否与 VARCHAR 相关。查询是一个查询,使用常规查询方法而不是 rawQuery 可能会产生正确的结果
-
我尝试了常规查询,结果相同。有什么想法吗?
-
那么您的数据库并没有真正包含该记录,或者您没有正确读取游标的结果
标签: android mysql sqlite where-clause