2011-09-28 48 views
0

更新表我有这样的数据的数据库中创建一个表:enter image description here问题而在Android的

我现在已经书写的查询,通过concatinating姓名和电子邮件字段更新联系人场: UPDATE MyContacts SET contact=(SELECT name||'--'||email FROM MyContacts);

这里的问题是执行查询的表如下之后:

enter image description here

为什么会发生这样的吗?在oracle中我从来没有遇到过这个问题。请帮帮我。谢谢

+0

也发布您的代码.... – ingsaurabh

回答

2

现在你没有指定正确的行来检索值。尝试这样的:

UPDATE MyContacts SET contact = name||'--'||email; 

编辑:很高兴它的工作。你的第一个问题是你的子选择使用没有WHERE子句的SELECT语句(SELECT name||'--'||email FROM MyContacts将返回3行)。一种可能的解决方案是SQLite会抛出一个错误,并说你试图设置一个列返回多于1行的表达式的结果:我已经看到这与MySQL和SQL Server。但是,在这种情况下,SQLite似乎只使用返回的第一个值。然而,你的第二个错误会引发:因为你没有用WHERE子句缩小你的UPDATE语句,所以它使用返回的第一个值来更新每一行,这就是你所看到的。

+0

谢谢。有效。但是我所用的陈述有什么问题。你能解释我吗? – Pramod