5.04版本中where中加入的子查询未解析

浏览:1406 发布日期:2016/12/20
5.0.0 - 普通 - 已关闭
$subQuery = Db::table('user_field_dict')
            ->field('field_id')
            ->where('field_id|parent_field', $fieldID)
            ->buildSql();

        $where = ['is_show' => 1,
            'user_status' => ['neq', 0],
            'user_list.type_id' => $typeID,
            'field_id' => ['in', $subQuery]];

        $userList = $this->db()
            ->field('user_name,real_name,unit_name,title_name')
            ->join('unit_list', 'user_list.unit_id=unit_list.unit_id', 'LEFT')
            ->join('user_title_dict', 'user_list.title_id=user_title_dict.title_id', 'LEFT')
            ->where($where)
            ->order('convert(real_name using gbk) asc')
            ->select();
这段代码生成的SQL语句为 SELECT `user_name`,`real_name`,`unit_name`,`title_name` FROM `user_list` LEFT JOIN `unit_list` `unit_list` ON `user_list`.`unit_id`=`unit_list`.`unit_id` LEFT JOIN `user_title_dict` `user_title_dict` ON `user_list`.`title_id`=`user_title_dict`.`title_id` WHERE `is_show` = 1 AND `user_status` <> 0 AND `user_list`.`type_id` = 1 AND `field_id` IN (0) ORDER BY convert(real_name using gbk) asc 可以看到`field_id` IN (0)部分子查询$subQuery并未能解析加入where的查询条件,在thinkPHP5.03及之前版本均无子问题,该段代码可以正常执行,请问是5.04对where语句的解析方式变化了还是解析出现的bug
评论(
后面还有条评论,点击查看>>