現在有一個小說資訊表A(只是小說的匯總資訊),小說的章節資訊會放在小說id%100的那張表B上(比如A表小說id為1245,那它的章節數據就會放在chapter_45這張表上,小說資訊會以id隨機分佈在100張上),現在我想查尋出以B表上章節數量(count(*))倒序排列的A表小說信息,我寫了sql語句:select i.id,i.siteid,count(*) as s from ptcms_novelsearch_info as i join ptcms_novelsearch_chapter_i.id%100 as c on c.novelid = i.id and c.siteid=UP.site. id order by s desc limit 20
;
會報%100語法錯誤的錯,因為章節表沒法確定(有100個小說章節資訊表),求大神解答如何實現這一需求
迷茫2017-05-16 13:00:36
這個就是水平分錶的概念了吧直接去一個實例的一個庫查100張表的信息你必須union所有的表去查因為你不知道哪些表保存的是你要的數據mysql自己就更不知道了這顯然是不合理的所以你這樣的業務模式應該使用分錶處理比如借助mycat A和B表都按照小說id分錶,你只需要在mycat裡配置好然後直接select A join B on A.id =B.id即可