今天在處理一個電影網站的數據,需要更改部分內容,因為這個網站的電影太多了,一條一條處理非常困難,所以想先從部分內容開始分析,然後使用到limit。這時mysql報錯了:
This version of MySQL doesn’t yet support ‘LIMIT & IN/ALL/ANY/SOME subquery’
字面意思就是不支持在子查詢中使用limit關鍵字。
經過搜索,找到了替代解決方法。
就是在limit的子查詢外層再加一層子查詢。
比如:
原先可能是報錯的sql語句是:select *from cidy where id in(select id from cidy limit 0,10);
經過修改的sql就是:select *from cidy where id in(select id from(select id from cidy limit 0,10));
經過測試,修改過的sql語句執行時報錯:Every derived table must have its own alias
錯誤的字面意思是:需要別名
從上面的sql語句中可以看到,我們多加的一層sql不僅沒有別名更沒有表名,會不會在這裡出問題呢?測一下就知道了~
經過修改後的sql語句就是:select *from cidy where id in(select id from(select id from cidy limit 0,10)as cd);
經過測試,如我們所想,終於成功了。