2012-07-17 192 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); 

,然後在結果按照自己的標準進行迭代,並選擇一個「最佳」匹配。

另外,您應該爲要搜索的列創建不區分大小寫的匹配表。