2012-01-08 77 views
0

您好我正在使用java和shell命令(所以命令必須是一行)在android中的SQLite查看器我寫了佈局和查看器,所有的一切都是完美的。我設置它,所以當長時間按下一個值時,編輯文本會顯示用戶可以輸入新值的位置,然後在按下好的時候更新值。SQLite更新值行號可能/選項?

我有列名稱,舊的和新的值,數據庫名稱,表名等等但是問題是讓他們更新我看到的東西像where子句的值,但問題是如果一列有值多次(很可能是這種情況),它不會知道正確的行。

所以請記住,我是新來的sqlite一直在使用它不到一個星期。有沒有一種方法可以使用列名和行號更新列值?

什麼是我的選項來更新表。

我還沒有真正下架此說,我有這樣的(一列)的表

sample 
-------- 
0 
0 
0 
1 
0 
1 
1 
0 

你將如何更新第三排等於1?如果我這樣做

sqlite3 DATABASEHERE "UPDATE TABLEHERE SET sample='1' WHERE sample='0'" 

where語句描述行1,2,3,5和8,所以必須有一種方法來使用行號?

感謝所有幫助

+0

你可以爲表添加CREATE語句嗎? – 2012-01-08 16:51:04

+0

你不能有這樣的表。關係代數(關係數據庫像SQLite所基於的那樣)將關係(或表)定義爲一組元組。作爲一個集合,具有完全相同值的元組是無法區分的。不可能有多個具有相同值的行,因爲它們會被視爲相同,因此只能保存一次。 – 2012-01-08 16:56:22

+0

我沒有創建聲明我不認爲我可以得到,因爲我不與我的數據庫工作,它與任何數據庫的工作,它是文件瀏覽器的一部分,我正在寫,所以我正在編輯數據庫就像SD卡和什麼不 – user577732 2012-01-08 17:16:06

回答

4

SQLite的,您可以訪問rowid。所以你可以寫SELECT rowid, col FROM table1然後用它來更新表:UPDATE TABLEHERE SET sample='1' WHERE rowid=3

+0

完美工作,非常感謝很多人對於sqlite這樣的noob很抱歉,但開始一些我想要的東西:) – user577732 2012-01-08 17:32:34