我有一个包含表模式和准备语句的表。
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;
问题是,当我在sqlfiddle中运行此查询时,它工作得很好,但是当我在phpmyadmin中使用类似的表模式运行这个类似的查询时,它不起作用。 我没有得到任何类型的错误,但像“查询已成功执行”这样的简单消息。 我没有看到任何结果或任何错误。请帮助。
答案 0 :(得分:0)
这在phpMyAdmin 4.0.6中对我来说很好用;我看到了三排结果。我正在使用PHP 5.5.3和MySQL 5.5.31以及mysqli扩展。
然而我第二次尝试并得到了:
#1243 - 给予EXECUTE的未知预处理语句处理程序(stmt)。