php - mysql 一张表根据另一张表的字段数量排序查询
滿天的星座
滿天的星座 2017-05-16 12:58:36
[PHP讨论组]

现在有一个小说信息表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=i.siteid GROUP BY i.id order by s desc limit 20;
会报%100语法错误的错,因为章节表没法确定(有100个小说章节信息表),求大神解答如何实现这一需求

滿天的星座
滿天的星座

全部回复(2)
迷茫

这个就是水平分表的概念了吧 直接去一个实例的一个库查100张表的信息你必须union所有的表去查 因为你不知道哪些表保存的是你要的数据 mysql自己就更不知道了 这显然是不合理的 所以你这样的业务模式应该使用分表处理 比如借助mycat A和B表都按照小说id分表,你只需要在mycat里配置好 然后直接select A join B on A.id=B.id即可

我想大声告诉你

由于表名是变量,不能直接使用.你应该使用动态sql去拼接sql语句.

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号