我正在尝试探索android,我刚开始使用SQLite数据库。我想知道从表中选择单行的正确语法是什么,我想要选择的行来自使用editText
的用户输入的值。提前谢谢。
答案 0 :(得分:1)
我不同意上面的两个答案。如果用户输入此查询,该怎么办:
Bobby Tables'; drop table yourTable;
我相信你应该这样做:
String query = "select * from TABLE_NAME WHERE column_name=?";
String[] selection = new String[1];
selection[0] = users_entered_value;
Cursor c = db.rawQuery(query, selection);
ETA:实际上,我越是想到它,我就越认为你走向错误的方向。如果您的应用程序依赖于数据库查询,只返回与用户输入的任意字符串完全匹配的唯一匹配项,那么它可能会在很多时候被打破。
你应该做的是这样的事情:
String query = "select * from TABLE_NAME WHERE column_name LIKE ?";
String[] selection = new String[1];
selection[0] = "%" + users_entered_value + "%";
Cursor c = db.rawQuery(query, selection);
然后迭代结果并根据您自己的标准选择“最佳”匹配。
此外,您应该为要搜索的列创建不区分大小写匹配的表。
答案 1 :(得分:0)
SQLiteDatabase db;
db.rawQuery(“select * from yourTable,其中your_column_name ='users_entered_value'limit 1”,null);
答案 2 :(得分:0)
SQLiteDatabase db;
// make connection to your database ;
Cursor c = null ;
String SQL = "select * from TABLE_NAME where column_name='VALUE'";
c = db.rawQuery(SQL);
c包含您触发的查询结果数组。
您可以使用循环检索值。