在DKAN中安装Fields Permissions Drupal模块后,每当我尝试在DKAN中查看我的数据集目录时,都会显示一个错误。我可以通过导航到各自的超链接来查看各个数据集。
错误: SQLSTATEHY000:常规错误: 3065 ORDER BY子句的表达式#1不在选择列表中,引用的列'dkan_opendatatest.t.changed‘不在选择列表中:这与DISTINCT不兼容
对如何解决这个问题有什么想法吗?
发布于 2016-10-20 21:45:40
这很可能是驱动搜索页面的视图。下拉列表期望该字段是一个选择列表,但是字段中的更改使该视图生成MySQL不支持的SQL查询。
您可以通过编辑"/admin/structure/views/view/dkan_datasets/edit/panel_pane_1“上的视图并更改”排序条件“中的”索引节点:更改日期“来修复此问题。现在还不能确定正确的“排序标准”设置会是什么,但你可以通过更改“排序标准”来解决这个问题。也许可以删除并重新添加"changed“字段。
发布于 2016-12-28 03:47:47
我在访问管理/内容和管理/人员页面时也遇到了类似的错误:Peopleuser_admin_people中出现异常: SQLSTATEHY000: General error: 3065 ORDER BY子句的表达式#1不在选择列表中,引用了不在选择列表中的列'mycmsschema.users_field_data.created‘;这与DISTINCT不兼容
它输出的查询在Mysql Workbench中工作得很好,但在访问这些页面时不能在Drupal8中运行。
MySQL5.7似乎不喜欢Drupal8查询(可能还有7个查询,但没有检查)。需要降级到MySQL5.6(所以不会默认使用像ONLY_FULL_GROUP_BY这样的超级严格的sql_mode设置,这是MySQL5.7中的默认设置),或者进入core/lib/Drupal/Core/Database/Driver/mysql/Connection.php并更改:
/*
'sql_mode' => "SET sql_mode = 'ANSI,STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,ONLY_FULL_GROUP_BY'",
*/至:
'sql_mode' => "SET sql_mode = 'ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER'",这对我很有效。注意:我认为删除ONLY_FULL_GROUP_BY应该已经修复了,但似乎我也需要删除一些rest。
https://stackoverflow.com/questions/40134273
复制相似问题