php - sql语句为什么提取不到id 和title两个字段,只能提取title字段?
扔个三星炸死你
扔个三星炸死你 2017-06-10 09:47:31
[PHP讨论组]

SQL语句

    public function get_radom_article(){
            $table1 = $this->get_table('article') ;
            $sql = 'SELECT * 
    FROM `'.$table1 .'` AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `'.$table1 .'`)-(SELECT MIN(id) FROM `'.$table1 .'`))+(SELECT MIN(id) FROM `'.$table1 .'`)) AS id) AS t2 
    WHERE t1.id >= t2.id 
    ORDER BY t1.id LIMIT 10';
     return $this->query_all($sql);
        
    }

提取

                radom_articles AS $key => $val) { ?>
                
  • 可以提取到标题为什么提取不到id?
    这些提取到的数据,标题全部没有错误,但是为什么ID全部都是一样的,也就是没有提取到对应标题字段的id?SQL是哪里出错了吗?各位大神指导下

    标题的字段是title,id字段是id

    扔个三星炸死你
    扔个三星炸死你

    全部回复(2)
    淡淡烟草味

    你把*换成t1.*看看

    过去多啦不再A梦

    第一:你连表查询的t1.id >= t2.id就已经会出现重复的数据,虽然你的算法看起来这个可能性比较小。
    第二:结果集包含多个id字段,php取出来的结果出现在select后面的最后的id字段会覆盖之前的值,当然也可能查询优化器会改变select后列的顺序也说不定。

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

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