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 --Vevb.com
- )
雖然錯誤的字面意思是缺少列,但是究竟是哪里缺少了列呢?經過測試,發現是在加上最外層的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
- )
新聞熱點
疑難解答