Expression #1 of ORDER BY clause is not in SELECT list, references column 'ekbX1.t0.name' which is n

2023-05-16

报错信息:

Expression #1 of ORDER BY clause is not in SELECT list, references column 'ekbX1.t0.name' which is not in SELECT list; this is incompatible with DISTINCT

问题原因:
mysql5.7.5及以上版本将sql_mode的ONLY_FULL_GROUP_BY模式默认设置为打开状态,会导致一些错误:

1、我们使用GROUP BY查询时,出现在SELECT字段后面的只能是GROUP
BY后面的分组字段,或使用聚合函数包裹着的字段,否则会报错如下信息:   Expression #1 of SELECT list is
not in GROUP BY clause and contains nonaggregated column
‘database.table.column’ which is not functionally dependent on columns
in GROUP BY clause; this is incompatible with
sql_mode=only_full_group_by
2、当使用ORDER BY查询时,不能使用SELECT
DISTINCT去重查询。否则会报错如下信息: Expression #1 of ORDER BY clause is not in
SELECT list, references column ‘database.table.column’ which is not in
SELECT list; this is incompatible with DISTINCT

查询验证:


select version(); 查询版本

解决方法:
去除ONLY_FULL_GROUP_BY
1、通过命令关闭:

set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

但该方法在重启Mysql服务后会失效,重启服务后会失效
2、通过修改mysql的配置文件关闭ONLY_FULL_GROUP_BY SQL模式

文件底部追加:

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

参考链接:https://www.cnblogs.com/start-fxw/p/11882230.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Expression #1 of ORDER BY clause is not in SELECT list, references column 'ekbX1.t0.name' which is n 的相关文章

  • 选择输入字段中的文本,但无法编辑

    我有一个简单的文本输入字段
  • 如何在IE中使用键盘选择多个选择的非连续选项

    仅使用键盘 如何选择多选元素的非连续选项 在 Firefox 或 Windows 资源管理器上 我只需按 ctrl 箭头即可移动焦点 然后按空格键进行选择 但我没有看到任何方法让它在 IE 上工作 Thanks 今天我一直在寻找这个 事实证
  • MySQL SELECT 中的条件 SELECT

    Table id price is active 1 20 99 0 2 10 99 1 3 30 99 0 4 15 99 1 5 35 99 1 我试图选择 is active 等于 1 的所有行的 COUNT 所以我使用了这个简单的查
  • 简单的 MySQL 语法错误 [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我正在运行以下代码 但找不到错误是什么 谁能建议我应该检查什么 result mysql query SELECT FROM ta
  • 反射性能 - 创建委托(C# 属性)

    我在使用反射时遇到性能问题 所以我决定为我的对象的属性创建委托 到目前为止得到了 TestClass cwp new TestClass var propertyInt typeof TestClass GetProperties Sing
  • 从两个表中选择最大值、最小值

    我有两张桌子 不同之处在于 归档是一个表 另一个保存当前记录 这些是记录公司销售额的表格 在这两个字段中 我们都有其他字段 id 名称 销售价格 我需要从两个表中选择给定名称的最高价格和最低价格 我尝试处理查询 select name ma
  • 使用 GROUP BY 时 MySQL SUM 不起作用

    假设我们有这张表 Symbol Size A 12 B 5 A 3 A 6 B 8 我们想要这样的视图 Symbol Size A 21 B 13 所以我们用这个 Select Symbol sum Size from table grou
  • SQL - 被 SELECT 困扰 - 请帮忙!

    我试图在 SQL Server 2005 中实现以下目标 SELECT IF EITHER EXISTS usr username pro email FROM table1 AS usr table2 AS pro WHERE usr u
  • jQuery - 选择选择框中的选项[重复]

    这个问题在这里已经有答案了 可能的重复 jQuery 以编程方式选择选择框中的选项 https stackoverflow com questions 1573930 jquery programmatically select an op
  • MySQL 错误:#1142 - SELECT 命令被拒绝给用户

    我在一台服务器上的某个查询时遇到问题 在我测试过的所有其他地方 它工作得很好 但在我想使用它的服务器上 它不起作用 这是关于以下 SQL SELECT facturen id AS fid projecten id AS pid titel
  • 每个派生表必须有自己的别名 - 使用多个 SELECT 语句时出错

    我尝试在查询中使用多个 SELECT 语句从数据库获取数据 但出现错误 查询是 SELECT FROM SELECT FROM players WHERE lid 0 WHERE NOT EXISTS SELECT FROM players
  • 如果通过 SQL 查询结果没有找到记录,则应为 0

    我正在使用火鸟 我需要以下结果 但我没有得到我需要的结果 我尝试了以下查询 SELECT CASE EXTRACT MONTH FROM pd Date WHEN 1 THEN January WHEN 2 THEN February WH
  • SQL select通常是如何实现的

    我有两节课 class PopulationMember public void operationOnThisMember1 void operationOnThisMember2 private Population populalti
  • 表达式树深度限制

    我在尝试对类型为 Expression gt 的 LambdaExpression 调用 Compile 时遇到问题 该表达式的深度约为 400 较小的值不会导致任何问题 我找不到任何有关此类限制的信息 谁能澄清这一点吗 我可以增加这个限制
  • 如何解决postgresql中group by和聚合函数的问题

    我正在尝试编写一个查询来划分两个 SQL 语句 但它显示了我 ERROR column temp missed must appear in the GROUP BY clause or be used in an aggregate fu
  • 当涉及多个渠道时,select 如何工作?

    我发现在多个非缓冲通道上使用 select 时 例如 select case lt chana case lt chanb 即使两个通道都有数据 但在处理此选择时 case chana 和 case chanb 的跟注不平衡 package
  • C 中的复合语句表达式

    下面的代码不起作用 int i void 999 100 添加括号就可以了 为什么 int i void 999 100 还有另一种方法可以完成此类分配 int i void 999 100 是什么让他们与众不同 在这份声明中 int i
  • MySql JOINS 的优点/缺点

    当我从多个表中选择数据时 我经常使用 JOINS 最近我开始使用另一种方式 但我不确定从长远来看会产生什么影响 例子 SELECT FROM table 1 LEFT JOIN table 2 ON table 1 column table
  • VB SQL 语句未选择正确的行

    我试图使用 SELECT 语句在我的数据库中 选择 一个人 但它没有选择正确的人 我也不确定为什么 我正在使用访问数据库 数据库连接代码 Imports System Data OleDb Module Database Connectio
  • MySQL #1093 - 您无法在 FROM 子句中指定用于更新的目标表“赠品”

    I tried UPDATE giveaways SET winner 1 WHERE ID SELECT MAX ID FROM giveaways 但它给出了 1093 您无法指定目标表 赠品 进行更新FROM clause 本文 ht

随机推荐