我得到了这个sql模式=只有完整组的限制,我没有服务器的全局权限,因为我使用的是共享主机

vs3odd8k  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(323)

选择*from raw\u stock where date='2002-09-23'group by token order by time
然后我得到了这个: SELECT 列表不在 GROUP BY 子句并包含非聚合列 'db.table.table_id' 在功能上不依赖于 GROUP BY 条款;这与 sql_mode=only_full_group_by 我在这里看到了答案:https://stackoverflow.com/questions/41887460/select-list-is-not-in-group-by-clause-and-contains-nonaggregated-column-inc/41887524#=
但这是如果你不是在共享主机,你有全球的权利
这个问题看起来像是重复,但事实并非如此,如果你有自己的专用vps服务器,你只能禁用完全组…但是当你在共享主机上托管你的应用程序时,情况就不一样了。如果您试图禁用只\u完全\u组\u由它会告诉你,你没有管理员权限这样做…请纠正我,如果我错了

nfg76nw0

nfg76nw01#

你可以改变 sql_mode 在运行时。这就是它在运行时的工作方式

// connect to mysql and call the first query
mysqli_query("SET SESSION sql_mode = 'TRADITIONAL'");

mysqli_query($conn, "SET SESSION sql_mode = 'TRADITIONAL'");

也试试看 mysql_query 如果 mysqli_query 不起作用。

6ljaweal

6ljaweal2#

您需要按列名选择所有列,并在GROUPBY子句中也应用它们,否则,这将导致错误,因为GROUPBY仅用于聚合,但从您的问题来看,不清楚为什么在查询中需要GROUPBY

SELECT column1,column2, column3,... FROM raw_stock WHERE date='2002-09-23' group by column1,column2, column3,... ORDER BY time

相关问题