【问题标题】:Unable to find syntax error in mysql query在 mysql 查询中找不到语法错误
【发布时间】:2021-11-20 18:14:49
【问题描述】:

我从 Internet 上的某个地方获得了这个 MySQL 数据透视表查询。我不记得网址了。

SET @sql = NULL;
SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT(
      'max(CASE WHEN ca.date = ''',
      date_format(date, '%Y-%m-%d'),
      ''' THEN coalesce(p.status, ''P'') END) AS `',
      date_format(date, '%Y-%m-%d'), '`'
    )
  ) INTO @sql
FROM calendar
where date>='2013-06-01'
  and date <= '2013-06-05';

SET @sql 
  = CONCAT('SELECT ca.studentname,
              ca.rollno,
              ca.class, ', @sql, ' 
            from
            (
              select c.date, a.studentname, a.rollno, a.class
              from calendar c
              cross join tbl_admission a
            ) ca
            left join tbl_absentees p
              on ca.rollno = p.rollno
              and ca.date = p.date
            where ca.date>=''2013-06-01''
              and ca.date <= ''2013-06-05''
            group by ca.studentname, ca.rollno, ca.class
            order by ca.rollno');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

当我运行这个查询时,它会显示一些语法错误。 语法错误接近

'SELECT GROUP_CONCAT'

我已经尝试添加该行但仍然没有成功

SET SESSION group_concat_max_len = 1000000;

请帮我找出我的 sql 查询中的语法错误。

【问题讨论】:

  • 您是如何执行此操作的?这个例子有 6 条 SQL 语句,但是大多数查询接口不允许多查询。您需要在单独的查询请求中运行每个语句(但在同一个数据库连接上)。
  • 感谢比尔的回复。在 Codeigniter 中使用它之前,我试图检查 PHP myadmin 中的查询,它向我显示语法错误。您可以尝试任何在线 MYSQL 语法检查器。
  • 您使用的是哪个 phpMyAdmin 版本?我使用的是最新的 (5.1.0),并且在您的查询中没有看到任何语法错误或警告。这似乎是最近在 SQL 解析功能中得到改进的东西。
  • 感谢伊萨克的回复。我想你可能是对的。我的 phpMyAdmin 版本是 4.9.2。让我更新我的软件并检查一下。
  • Issac 当我访问wampserver.com/en 下载最新版本的 WAMPserver 时,它说最新版本的 phpmyadmin 是 4.9.2。您从哪里获得最新版本(5.1.0)?

标签: mysql phpmyadmin pivot-table


【解决方案1】:

把它全部放在一个存储过程中。

“near”子句指向分号或SELECT。所以手动试试

SELECT @sql = NULL;
SELECT 1;

如果这有问题,那么您不能在尝试这样做的地方使用多个语句。

在这种情况下,要么单独执行每个查询,要么构建一个存储过程。

单独运行查询可能会遇到PREPARE 等问题。因此请检查您的客户端语言可用的内容。

【讨论】:

    猜你喜欢
    • 2020-03-21
    • 1970-01-01
    • 2019-01-16
    • 2021-05-07
    • 2011-08-18
    • 1970-01-01
    • 1970-01-01
    • 2016-08-05
    相关资源
    最近更新 更多