这句SQL语句执行返回。。。子查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后。 请问有什

UPDATEusermessageSETmessage=(SELECTmessageFROMusermessageWHEREuser='admin'),type=3WHE... UPDATE usermessage SET message =(SELECT message FROM usermessage WHERE user ='admin'),type = 3 WHERE ID=30 AND type = 4

请问这句有什么问题?老是说子查询返回值多于一个。。。
表usermessage的各列如下
ID user message type date
展开
 我来答
fallearth
2012-05-18 · TA获得超过233个赞
知道答主
回答量:168
采纳率:0%
帮助的人:39.4万
展开全部
说明usermessage里面有几行user都是admin,所以不能让message=一个结果集

加个 top 1 就解决了

UPDATE usermessage SET message =(SELECT top 1 message FROM usermessage WHERE user ='admin'),type = 3 WHERE ID=30 AND type = 4
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
304722538
2012-05-18 · TA获得超过184个赞
知道小有建树答主
回答量:112
采纳率:0%
帮助的人:126万
展开全部
SELECT message FROM usermessage WHERE user ='admin'
你单独执行一下这条语句,看下结果,如果记录多于一条的话就会报这个错的哈。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
iambise
2012-05-18 · TA获得超过714个赞
知道小有建树答主
回答量:834
采纳率:50%
帮助的人:504万
展开全部
SELECT message FROM usermessage WHERE user ='admin'这句话是不是返回了很多值?更新语句必须保证子查询只返回一个值,否则就报错。
追问
执行了一下的确是返回了2行值。。。但是2行值都是一样的,如果是一样的
SELECT message FROM usermessage WHERE user ='admin'的返回值都是“嗯我知道了”
那么这句

UPDATE usermessage SET message =(SELECT message FROM usermessage WHERE user ='admin'),type = 3 WHERE ID=30 AND type = 4

应该怎么改呢?
追答
如果你确保返回的两行都是一样的,不妨在子查询这里加个max。
UPDATE usermessage SET message =(SELECT max(message) FROM usermessage WHERE user ='admin'),type = 3 WHERE ID=30 AND type = 4
这样肯定只有1行返回
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hu0829
2012-05-18 · TA获得超过2937个赞
知道大有可为答主
回答量:2251
采纳率:50%
帮助的人:2342万
展开全部
意思是SELECT message FROM usermessage WHERE user ='admin' 这个查询出来不止一条,你单独执行下这条语句,如果是大于一条UPDATE是会报错的
追问
执行了一下的确是返回了2行值。。。但是2行值都是一样的,如果是一样的
SELECT message FROM usermessage WHERE user ='admin'的返回值都是“嗯我知道了”
那么这句

UPDATE usermessage SET message =(SELECT message FROM usermessage WHERE user ='admin'),type = 3 WHERE ID=30 AND type = 4

应该怎么改呢?
追答
UPDATE usermessage SET message =(SELECT message FROM usermessage WHERE user ='admin' AND ROWNUM =1),type = 3 WHERE ID=30 AND type = 4
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式