使用了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
)