only_full_group_by 重启不生效

1./etc/my.cnf  或  /usr/local/mysql/my.cof 总之就是mysql的配置文件
2.查看当前的sql模式select @@sql_mode;


3.添加语句

sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

注意在[mysqld]这个节点内容中添加(之前设置在末尾重启后就失效了)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: only_full_group_by 是 MySQL 的一个严格模式配置,用于控制对于 GROUP BY 语句中未被聚合的列的处理方式。在默认情况下,MySQL 允许在 GROUP BY 语句中选择列,但这些列在 SELECT 子句中没有被聚合函数处理时,MySQL 会选择第一个非聚合的值作为结果。而开启 only_full_group_by 参数后,MySQL 将不再允许未被聚合的列的选择,这样可以避免潜在的数据错误。而在 phpstudy 中开启 only_full_group_by 参数,则需要按照以下步骤操作: 1. 打开 phpstudy 控制面板。 2. 在面板中找到 "MySQL" 的选项,点击进入。 3. 在 MySQL 设置中找到 "参数配置" 选项,点击进入。 4. 在参数配置中,找到 "MySQL 参数配置" 标签页,点击进入。 5. 在标签页中找到 "查看和修改 MySQL 高级配置" 的链接,点击进入。 6. 在高级配置页面中,找到 "MySQL 其它配置参数",其中可以看到 "only_full_group_by" 参数。 7. 将 "only_full_group_by" 的值设置为 "ON",表示开启 only_full_group_by 参数。 8. 点击 "保存" 或 "应用",保存配置变更。 9. 重启 MySQL 服务,使配置生效。 完成以上步骤后,only_full_group_by 参数在 phpstudy 中就会被正确地开启。这样,在使用 GROUP BY 语句时,如果未被聚合的列在 SELECT 子句中没有被聚合函数处理,MySQL 将不再返回随机的值,而是会报错提示,从而保证了查询结果的准确性和数据的完整性。 ### 回答2: 在PHPStudy中,可以通过以下步骤开启only_full_group_by模式: 1. 打开PHPStudy程序,进入管理页面。 2. 在左侧导航栏中找到“MySQL”选项并点击。 3. 在打开的MySQL管理页面中,找到你想要开启only_full_group_by模式的数据库,并点击右侧的“管理”按钮。 4. 在数据库管理页面的左侧导航栏中找到“SQL窗口”选项并点击。 5. 在打开的SQL窗口中,输入以下语句并执行: SET sql_mode=(SELECT REPLACE(@@sql_mode, 'ONLY_FULL_GROUP_BY', '')); 以上语句的作用是将当前数据库的sql_mode参数中的ONLY_FULL_GROUP_BY模式移除。 6. 执行完上述语句后,通过以下语句查询当前数据库的sql_mode参数是否包含ONLY_FULL_GROUP_BY模式: SELECT @@sql_mode; 如果查询结果中没有ONLY_FULL_GROUP_BY模式,则表示成功开启only_full_group_by模式。 请注意,开启only_full_group_by模式可以提高数据库查询的准确性,但可能会导致一些旧的查询语句不再有效。因此,在开启该模式之前,需要确保你的代码和查询语句能够适应这种严格的模式。 ### 回答3: only_full_group_by 是 MySQL 中一个严格模式下的 SQL 状态标识,它要求在使用 GROUP BY 子句时, SELECT 语句的 SELECT 列表中的每一列要么是在 GROUP BY 列表中,要么是使用了聚合函数。在开启这个模式后,如果 SELECT 语句中的列不满足要求,将会出现错误。 在 PHPStudy 中开启 only_full_group_by 模式,需要按照以下步骤操作: 1. 打开 PHPStudy 的安装目录,找到 MySQL 的配置文件 my.ini(或 my.cnf)。 2. 使用文本编辑器打开该文件。 3. 找到 [mysqld] 部分,如果已经存在 sql_mode 参数,将其修改为如下格式: ``` sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION ``` 如果不存在 sql_mode 参数,则添加它: ``` [mysqld] sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION ``` 4. 保存文件,并重启 PHPStudy 中的 MySQL 服务器。 完成上述步骤后,only_full_group_by 模式将会开启,MySQL 将会以严格模式验证 GROUP BY 子句和 SELECT 列表的合法性。 需要注意的是,开启 only_full_group_by 模式可能会引起一些 SQL 语句的错误,特别是在旧版本的代码中。因此,在开启该模式前,最好对现有的数据库操作代码进行测试和调整,以便适应新的严格模式要求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值