0

我有一个带有表模式和准备好的语句的表。

CREATE TABLE studentexam
    (`ID` int, `Student` varchar(4), `Exam` varchar(2))
;

INSERT INTO studentexam
    (`ID`, `Student`, `Exam`)
VALUES
    (1, 'Kavi', 'BE'),
    (2, 'MGR', 'BA'),
    (3, 'MGR1', 'BE')
;

SET @sql = NULL;
SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT(
      'max(case when exam = ''',
      exam,
      ''' then student end) AS `',
      exam, '`'
    )
  ) INTO @sql
from studentexam;

SET @sql 
    = CONCAT('SELECT ', @sql, ' 
              from studentexam
              group by id;');

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

SQL小提琴

问题是,当我在 sqlfiddle 中运行此查询时,效果很好,但是当我在 phpmyadmin 中使用类似的表模式运行此类似查询时,它不起作用。我没有收到任何类型的错误,而是一条简单的消息,例如“查询已成功执行”。我没有看到任何结果或任何错误。请帮忙。

4

1 回答 1

0

这在 phpMyAdmin 4.0.6 中对我来说很好;我看到了三行结果。我正在使用带有 mysqli 扩展的 PHP 5.5.3 和 MySQL 5.5.31。

但是我第二次尝试并得到:

#1243 - 为 EXECUTE 提供了未知的准备好的语句处理程序 (stmt)。

于 2013-09-20T15:16:27.783 回答