0

我正在尝试探索 android,我刚开始使用 SQLite 数据库。我想知道从表中选择单行的正确语法是什么,我要选择的行来自用户使用editText. 提前致谢。

4

3 回答 3

1

我不同意上面的两个答案。如果用户输入这个查询怎么办:

Bobby Tables'; drop table yourTable;

见:http: //xkcd.com/327/

我相信你应该这样做:

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);

然后遍历结果并根据您自己的标准选择“最佳”匹配。

此外,您应该为要搜索的列创建不区分大小写匹配的表。

于 2012-07-17T15:05:05.187 回答
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 contains your result array of query you fired.

You can retrieve values using loop.

于 2012-07-17T13:43:37.433 回答
0

SQLite数据库数据库;

db.rawQuery("select * from yourTable where your_column_name = 'users_entered_value' limit 1", null);

于 2012-07-17T12:39:05.507 回答