1. 程式人生 > >Mysql語句報錯Operand should contain * column解決辦法

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
)