2012-07-17 99 views
0

我想探索android和我刚开始使用SQLite数据库。我想知道从表中选择单行的正确语法是什么,我想要选择的行是从使用editText的用户输入的值。提前致谢。SELECT语句和WHERE子句的正确语法是什么?

+0

我们的朋友谷歌帮我找到你这个:http://sqlite.awardspace.info/syntax/sqlitepg03.htm – alfasin 2012-07-17 06:11:24

+0

也试试这个http://www.w3schools.com/sql/sql_select.asp – pixelscreen 2012-07-17 06:14:22

回答

0

SQLiteDatabase db; (“select * from yourTable where your_column_name ='users_entered_value'limit 1”,null);}}

+0

我在哪里可以声明这个查询? – user1500530 2012-07-17 13:57:56

+0

对不起,我不关注,但你是什么意思声明查询? – DroidT 2012-07-17 16:26:22

+0

String query =“select * from yourTable where your_column_name ='users_entered_value'limit 1”; – DroidT 2012-07-17 16:27:08

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包含你的查询结果数组。

您可以使用循环检索值。

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

,然后在结果按照自己的标准进行迭代,并选择一个“最佳”匹配。

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