关键词:
【中文标题】发生数据库错误错误号:1055 [重复]【英文标题】:A Database Error Occurred Error Number: 1055 [duplicate] 【发布时间】: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的方式不同。
【参考方案1】:
这对我有用:
打开http://localhost/phpmyadmin/,然后单击 SQL 并运行此查询:
SET sql_mode = '';
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
【讨论】:
这对我来说是 laragon mysql 5.7 的诀窍【参考方案2】:它出现在mysql 5.7
,因此请检查此链接 [https://www.sitepoint.com/quick-tip-how-to-permanently-change-sql-mode-in-mysql/] 并按照对我来说很好的步骤。
或者 打开文件
vi /etc/mysql/my.cnf
在文件底部添加这些行
[mysqld]
# ... other stuff will probably be here
sql_mode = "STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
并保存 然后重启mysql
sudo service mysql restart
注意不适用于window os
【讨论】:
您按照步骤操作了吗 使用哪个操作系统? @VijaySharma 该页面是 404。最好使用主要来源,dev.mysql.com/doc/refman/5.7/en/group-by-handling.html。我也不会改变模式,最好更正查询。 @chris85 我更改了查询,但它对我不起作用,所以我使用它对我来说很好,是的,我知道最好更正查询而不是更改模式,谢谢您的建议。 @vijaySharma,您的解决方案似乎是一个完美的答案,我不想重写应用程序中的所有查询,这就是原因【参考方案3】:在阅读您的 SQL 时,您要求返回每一列(即 *),以及第二次返回 id(o.id 已被 * 检索),然后您正在查询 GROUP_CONCAT(pia.applicantid)。但是,您的 group by 子句仅请求按 (group by) o.id 聚合。
SQL 不喜欢这样,因为它不知道如何处理数据集中使用 * 查询的其他字段。
我怀疑您希望以聚合方式查看与 o.id 相关的每个申请人 ID。如果是这样,这是您的查询,它将起作用。
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"
如果您想按其他字段分组,只需将它们专门添加到您的选择以及分组依据中即可。所有非聚合字段都需要在 select 和 group by 中。这是ANSI Standard 的一部分,所有SQL 风格都应该如此。我相信 mysql 5.7 及更高版本比以前的版本更注重这一点,但我通常会遵循这一点。
这里有一些关于该主题的补充阅读。希望这可以帮助。 MySQL 5.7 Documentation regarding Group by
【讨论】:
成功提交表单,但控制台出现一个错误,例如发生数据库错误错误号:1048 - Codeigniter
】成功提交表单,但控制台出现一个错误,例如发生数据库错误错误号:1048-Codeigniter【英文标题】:Successfullysubmittedformbutoneerrorinconsole,likeADatabaseErrorOccurredErrorNumber:1048-Codeigniter【发布时间】:2020-02-1900:41:30【问题描述】:当我... 查看详情
Laravel:语法错误或访问冲突:1055 错误
】Laravel:语法错误或访问冲突:1055错误【英文标题】:Laravel:Syntaxerrororaccessviolation:1055Error【发布时间】:2017-04-1611:27:52【问题描述】:我想在同一个查询中使用WhereIn和Groupby来获取Result。我试过了:$loadids=explode("#@*",$reciptdet->... 查看详情
mysql-1055错误
今天遇到了1055错误,在本机上程序是可以用的,可是在服务器上就出错了,错误入下:[Err]1055-Expression#1ofORDERBYclauseisnotinGROUPBYclauseandcontainsnonaggregatedcolumn'XXXXXX'whichisnotfunctionallydepend 查看详情
试图获得每个州的总约会。在 MySQL 1055 中出现错误
】试图获得每个州的总约会。在MySQL1055中出现错误【英文标题】:Tryingtogettotalappointmentsperstate.gettingerrorinMySQL1055【发布时间】:2020-10-0704:06:51【问题描述】:这是我尝试按状态获取约会数据的查询selectaddress.state,patient.pt_id,appointm... 查看详情
违反 UNIQUE KEY 约束;错误号:2627;输入数据没有重复[关闭]
...】:2021-12-2714:41:41【问题描述】:我正在尝试更新我的SQL数据库,但标题中出现错误。在异常消息中我可以找到重复的键,但我在输入数据中找不到相同的键。我错过了什么?表格的 查看详情
mysql-1055错误
...;首先查看mysql版本://启动mysqlmysql-uroot-p//输入自己的数据库密码mysqlversion();//查询数据库版本接着,看一下sql_mode这一配置项select@@sql_mode//查出sql_mode的值修改my.cnf, 查看详情
我不知道为啥会发生错误[重复]
】我不知道为啥会发生错误[重复]【英文标题】:Idon`tknowwhyerrorhappen[duplicate]我不知道为什么会发生错误[重复]【发布时间】:2016-09-2606:13:20【问题描述】:我想让那个Post协议继承Equatable协议和Post协议实现Equatable协议中的方法。... 查看详情
错误代码:1055 与 sql_mode=only_full_group_by 不兼容
...】:2016-07-1210:45:22【问题描述】:我在切换到LahmanSQL棒球数据库的离线版本时遇到了问题。我正在使用嵌入到EDX课程中的终端。此命令在Web终端上运行良好:SELECTconcat(m.name 查看详情
发生数据库错误 1452
】发生数据库错误1452【英文标题】:ADatabaseErrorOccurred1452【发布时间】:2013-02-0614:33:15【问题描述】:我正在做一个需要我在phpMyAdmin中使用外键的项目。我在两个表上设置了外键。tblquestions链接到answers表,但是当我尝试将数据... 查看详情
处理 SSAS 多维数据集时发生异常 [重复]
】处理SSAS多维数据集时发生异常[重复]【英文标题】:ExceptionoccurswhileprocessingSSAScube[duplicate]【发布时间】:2015-06-1710:53:55【问题描述】:在创建多维数据集时,它显示部署成功,但在处理多维数据集时出现异常。OLEDB错误:OLEDB... 查看详情
运行 Eclipse 模拟器时发生错误 [重复]
】运行Eclipse模拟器时发生错误[重复]【英文标题】:ErroroccurswhilerunningEclipseEmulator[duplicate]【发布时间】:2013-12-1912:33:05【问题描述】:我是EclipsePhonegap的初学者,当我尝试创建一个小应用程序时,模拟器总是显示错误消息“Faile... 查看详情
在swift中使用DateFormatter时发生错误[重复]
】在swift中使用DateFormatter时发生错误[重复]【英文标题】:WhileusingDateFormatterinswifterroroccurs[duplicate]【发布时间】:2019-08-2008:35:19【问题描述】:更改日期格式时出错。我从服务器获取的日期属于这种类型:2019-08-20T08:05:15.680Z。let... 查看详情
SQL错误仅发生在PHP脚本中[重复]
】SQL错误仅发生在PHP脚本中[重复]【英文标题】:SQLerroronlyoccursinPHPscript[duplicate]【发布时间】:2014-09-1300:44:51【问题描述】:我很矛盾。我的SQL查询只会通过PhpMyAdmin发送。如果我尝试通过PHP发送此特定查询,则会收到错误消息... 查看详情
vb 上的 System.Data.dll 中发生错误 System.InvalidOperationException' [重复]
】vb上的System.Data.dll中发生错误System.InvalidOperationException\\\'[重复]【英文标题】:ErrorSystem.InvalidOperationException\'occurredinSystem.Data.dllonvb[duplicate]vb上的System.Data.dll中发生错误System.InvalidOperationException\'[重复]【发布时间】: 查看详情
如何在codeigniter中捕获数据库错误[重复]
】如何在codeigniter中捕获数据库错误[重复]【英文标题】:HowtocatchDBerrorincodeinigter[duplicate]【发布时间】:2017-08-3120:42:49【问题描述】:我想在codeigniter中捕获数据库错误,例如(重复值或错误号1062或1451),然后将其返回。请帮... 查看详情
发生 JNI 错误,请检查您的安装并重试。我在 IntelliJ IDEA 中有这个错误和异常 [重复]
】发生JNI错误,请检查您的安装并重试。我在IntelliJIDEA中有这个错误和异常[重复]【英文标题】:AJNIerrorhasoccurred,pleasecheckyourinstallationandtryagain.IhavethiserrorandexceptioninIntelliJIDEA[duplicate]【发布时间】:2021-05-1904:39:08【问题描述】:... 查看详情
我的查询显示 heidisql 错误,不知道如何修复 [重复]
】我的查询显示heidisql错误,不知道如何修复[重复]【英文标题】:myqueryisshowingheidisqlerroradontknowhowtofix[duplicate]【发布时间】:2019-08-2811:05:03【问题描述】:SQL错误(1055):SELECT列表的表达式#2不在GROUPBY子句中,并且包含在功能上... 查看详情
如果发生数据库错误,如何将页面重定向到其他页面
】如果发生数据库错误,如何将页面重定向到其他页面【英文标题】:HowtoredirectpagetosomeotherpageifDatabaseErrorOccurs【发布时间】:2014-07-0923:01:15【问题描述】:我在一个表上应用了复合主键,如果主键约束失败,它会返回错误消息... 查看详情