原作者:张晓娟
- 适用范围
- 问题概述
- 问题原因
- 解决方案
适用范围
MogDB 5.0及以上版本
问题概述
- MySQL兼容性数据库下,执行SELECT语句出现报错
- 1)创建MySQL兼容性数据库
MogDB=# create database mysql DBCOMPATIBILITY 'B'; CREATE DATABASE
复制
- 2)创建表及插入数据
MogDB=# \c mysql Non-SSL connection (SSL connection is recommended when requiring high-security) You are now connected to database "mysql" as user "omm". mysql=# create table t (id int,name varchar(10)); CREATE TABLE mysql=# insert into t values(1,'a'),(2,'b'),(3,'c'); INSERT 0 3 mysql=# insert into t values(1,'aa'),(2,'bbb'),(3,'cccc'); INSERT 0 3
复制
- 3)执行select查询,出现报错
mysql=# select distinct id from t order by name; ERROR: for SELECT DISTINCT, ORDER BY expressions must appear in select list LINE 1: select distinct id from t order by name;
复制
问题原因
- order by后面的出现字段或者表达式必须出现在select distinct中,这是数据库的默认标准行为。
解决方案
- dolphin Extension是Mogdb的MySQL兼容性数据库(dbcompatibility=’B’)扩展
- 修改dolphin.sql_mode参数,去掉sql_mode_full_group可以解决
- 1)查看当前的sql_mode
mysql=# show dolphin.sql_mode; dolphin.sql_mode ------------------------------------------------------------------------------------------------------ sql_mode_strict,sql_mode_full_group,pipes_as_concat,ansi_quotes,no_zero_date,pad_char_to_full_length (1 row)
复制
- 2)修改sql_mode
mysql=# alter database mysql set dolphin.sql_mode to sql_mode_strict,pipes_as_concat,ansi_quotes,no_zero_date,pad_char_to_full_length; ALTER DATABASE mysql=# show dolphin.sql_mode; dolphin.sql_mode ------------------------------------------------------------------------------------------------------ sql_mode_strict,sql_mode_full_group,pipes_as_concat,ansi_quotes,no_zero_date,pad_char_to_full_length (1 row)
复制
- 3)再次执行查询,仍然报错,需要重新连接数据库
mysql=# select distinct id from t order by name; ERROR: for SELECT DISTINCT, ORDER BY expressions must appear in select list LINE 1: select distinct id from t order by name; ^ mysql=# \c mysql Non-SSL connection (SSL connection is recommended when requiring high-security) You are now connected to database "mysql" as user "omm". mysql=# select distinct id from t order by name; id ---- 1 2 3 (3 rows)
复制
- 总结:修改dolphin.sql_mode后,只对修改后的新连接生效,当前连接不生效。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
文章被以下合辑收录
评论
相关阅读
【专家有话说第五期】在不同年龄段,DBA应该怎样规划自己的职业发展?
墨天轮编辑部
1412次阅读
2025-03-13 11:40:53
MySQL8.0统计信息总结
闫建(Rock Yan)
537次阅读
2025-03-17 16:04:03
2月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
491次阅读
2025-03-13 14:38:19
SQL优化 - explain查看SQL执行计划(一)
金同学
422次阅读
2025-03-13 16:04:22
MySQL突然崩溃?教你用gdb解剖core文件,快速锁定“元凶”!
szrsu
414次阅读
2025-03-13 00:29:43
MySQL生产实战优化(利用Index skip scan优化性能提升257倍)
chengang
363次阅读
2025-03-17 10:36:40
MySQL数据库当前和历史事务分析
听见风的声音
339次阅读
2025-04-01 08:47:17
MySQL 生产实践-Update 二级索引导致的性能问题排查
chengang
301次阅读
2025-03-28 16:28:31
墨天轮个人数说知识点合集
JiekeXu
292次阅读
2025-04-01 15:56:03
MySQL8.0直方图功能简介
Rock Yan
253次阅读
2025-03-21 15:30:53
TA的专栏
热门文章
我的故障分析及处理思路分享(李真旭)
2020-10-22 11021浏览
公共子表达式消除(Common Subexpression elimination,CSE)
2020-08-26 6168浏览
Oracle数据库的跟踪和分析方法
2020-10-02 5020浏览
2.5.9使用systemd管理MySQL服务器
2020-10-20 4501浏览
初探华为云GaussDB (for MySQL)
2020-12-11 3844浏览
最新文章
28.4.4 INFORMATION_SCHEMA INNODB_BUFFER_POOL_STATS 表
2024-09-29 95浏览
28.4.3 INFORMATION_SCHEMA INNODB_BUFFER_PAGE_LRU 表
2024-09-29 60浏览
28.4.2 INFORMATION_SCHEMA INNODB_BUFFER_PAGE 表
2024-09-29 56浏览
28.4.1 INFORMATION_SCHEMA InnoDB 表参考
2024-09-29 62浏览
28.3.50 INFORMATION_SCHEMA VIEW_TABLE_USAGE 表
2024-09-29 66浏览
目录