【发布时间】:2018-02-20 20:15:14
【问题描述】:
将数据库从 MySQL 更改为 MySQLI 并收到错误 - 发生数据库错误
错误号:1055
SELECT 列表的表达式 #23 不在 GROUP BY 子句中,并且包含在功能上不依赖于 GROUP BY 子句中的列的非聚合列 'zipbizzlatestdb.pia.id';这与 sql_mode=only_full_group_by 不兼容
SELECT *,o.id as id, GROUP_CONCAT(pia.applicantid) as applicants
FROM `pr_opportunity` as o
LEFT OUTER JOIN pr_internal_applicant as pia
ON o.id = pia.positionid
WHERE o.approval_status='Approved'
and DATE(o.deadline) > DATE(NOW())
GROUP BY o.id
文件名:/var/www/html/singlecodebase/Feb152017/models/mod_common.php
行号:6999
我的模型文件 mod_common 如下:
function get_opportunity_list()
{
$sql = "SELECT *,o.id as id, GROUP_CONCAT(pia.applicantid) as applicants
FROM `".$this->myTables['opportunity']."` as o
LEFT OUTER JOIN pr_internal_applicant as pia
ON o.id = pia.positionid
WHERE o.approval_status='Approved'
and DATE(o.deadline) > DATE(NOW())
GROUP BY o.id";
$query=$this->db->query($sql);
if($query->num_rows() > 0){
$rows = $query->result();
}
return $rows;
}
不知道如何解决这个错误
【问题讨论】:
-
Changed the database from mysql to mysqli你的意思是你把mysql从5.6升级到5.7了吗?mysqli和mysql_是与mysql交互的不同 PHP 驱动程序。 -
您可以尝试匹配查询中的
(和)括号 -
删除两个查询中的
*,,它将起作用。如果您进行分组,则必须使用聚合函数(如 GROUP_CONCAT)或将您选择的列放入分组依据子句中。 -
一键安装phpmyadmin,运行数据库客户端版本:libmysql - mysqlnd 5.0.12-dev - 20150407,phpmyadmin vVersion信息:4.5.4.1deb2ubuntu2ersion。然后导入现有数据库
-
你需要看看你运行的是什么mysql版本,5.6和5.7处理group bys的方式不同。
标签: php mysql codeigniter mysqli mysql-error-1055