【问题标题】:Dkan Drupal Error after installing field permission module安装字段权限模块后 Dkan Drupal 错误
【发布时间】:2017-03-01 06:20:00
【问题描述】:

在 DKAN 中安装字段权限 Drupal 模块后,每当我尝试在 DKAN 中查看我的数据集目录时都会显示错误。我可以通过导航到各自的超链接来查看各个数据集。

错误: SQLSTATE [HY000]:一般错误:3065 ORDER BY 子句的表达式#1 不在 SELECT 列表中,引用不在 SELECT 列表中的列 'dkan_opendatatest.t.changed':这与 DISTINCT 不兼容

关于如何解决这个问题的任何想法?

【问题讨论】:

    标签: mysql database drupal dkan


    【解决方案1】:

    我在 Drupal 访问 admin/content 和 admin/people 页面时也遇到了类似的错误: People[user_admin_people] 中的异常:SQLSTATE[HY000]:一般错误:3065 ORDER BY 子句的表达式 #1 不在 SELECT 列表中,引用列 'mycmsschema.users_field_data.created' 不在 SELECT 列表中;这与 DISTINCT 不兼容

    它输出的查询在 Mysql Workbench 中运行良好,但在访问这些页面时在 Drupal8 中没有运行。

    Mysql 5.7 似乎不喜欢 Drupal8 查询(也可能有 7 个查询但没有检查)。需要降级到 Mysql 5.6(因此不默认为超级严格的 sql_mode 设置,例如 Mysql 5.7 中的默认设置 ONLY_FULL_GROUP_BY)或进入 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 应该已经修复,但似乎我也需要删除一些休息。

    【讨论】:

      【解决方案2】:

      这可能是驱动搜索页面的视图。下拉列表希望该字段是一个选择列表,但该字段的更改使该视图生成 MySQL 不支持的 SQL 查询。

      您可以通过编辑“/admin/structure/views/view/dkan_datasets/edit/panel_pane_1”中的视图并更改“排序条件”中的“索引节点:更改日期”来解决此问题。不确定您的更改将是什么正确的“排序标准”设置,但您希望可以通过更改“排序标准”从那里弄清楚。也许删除并重新添加“更改”字段。

      【讨论】:

        猜你喜欢
        • 2011-06-29
        • 2018-06-15
        • 1970-01-01
        • 1970-01-01
        • 2018-08-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多