2012-01-08 81 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