limit在mysql中查詢指定數(shù)據(jù)X到N條的一個(gè)功能了,但在mysql子查詢時(shí)會(huì)發(fā)現(xiàn)limit無(wú)效了,那么我們要如何解決此問(wèn)題?下面一起來(lái)看看.
今天在處理一個(gè)電影網(wǎng)站的數(shù)據(jù),需要更改部分內(nèi)容,因?yàn)檫@個(gè)網(wǎng)站的電影太多了,一條一條處理非常困難,所以想先從部分內(nèi)容開(kāi)始分析,然后使用到limit。這時(shí)mysql報(bào)錯(cuò)了:
This version of MySQL doesn’t yet support ‘LIMIT & IN/ALL/ANY/SOME subquery’
字面意思就是不支持在子查詢中使用limit關(guān)鍵字,經(jīng)過(guò)搜索,找到了替代解決方法,就是在limit的子查詢外層再加一層子查詢.
比如原先可能是報(bào)錯(cuò)的sql語(yǔ)句是:select *from cidy where id in(select id from cidy limit 0,10);
經(jīng)過(guò)修改的sql就是:select *from cidy where id in(select id from(select id from cidy limit 0,10));
經(jīng)過(guò)測(cè)試,修改過(guò)的sql語(yǔ)句執(zhí)行時(shí)報(bào)錯(cuò):Every derived table must have its own alias
錯(cuò)誤的字面意思是:需要?jiǎng)e名,從上面的sql語(yǔ)句中可以看到,我們多加的一層sql不僅沒(méi)有別名更沒(méi)有表名,會(huì)不會(huì)在這里出問(wèn)題呢?測(cè)一下就知道了~
經(jīng)過(guò)修改后的sql語(yǔ)句就是:select *from cidy where id in(select id from(select id from cidy limit 0,10)as cd);經(jīng)過(guò)測(cè)試,如我們所想,終于成功了.
新聞熱點(diǎn)
疑難解答
圖片精選