Mysql语句报错Operand should contain * column解决办法

Mysql错误问题各种各样的今天 在维护一个网站时碰到Mysql错误Operand should contain * column,下面一起来看问题解决步骤。

使用了sql语句处理某些内容。当执行某个语句时,Mysql报错误:Operand should contain 1 column

字面意思是,需要有1个数据列。 
我的sql语句类似这样: 
update cdtable set cdcontent=’cd is a good boy’ where id in( 
select * from( 
select * from cdtable where cdtype in(1,2,3) order by id desc limit 100 
)as cd 

虽然错误的字面意思是缺少列,但是究竟是哪里缺少了列呢? 
经过测试,发现是在加上最外层的sql语句之后报的错 
仔细看了一下语句,发现在上面语句的蓝色部分“where id in(~~~)”,子查询使用了(select * ~~)子查询得到的是不止一列的数据记录 
而很明显,where id in 需要的条件数据是一个列,问题就发生在这里啦 
解决的方法是:把where id in(~~)括号内的第一层子查询的“*”改成“id”即可,改后的句子就像: 
update cdtable set cdcontent=’cd is a good boy’ where id in( 
select id from( 
select * from cdtable where cdtype in(1,2,3) order by id desc limit 100 
)as cd 
)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值