而执行它通过phpMyAdmin的MySQL的#1243错误(MySql #1243 error w

2019-10-18 08:09发布

我试图在phpMyAdmin来执行这个代码。 但是,我发现了以下错误

赋予执行未知事先准备好的声明处理器(语句) - #1243

    SET @sql = NULL;
SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT(
      'count(distinct CASE WHEN topic = ''',
      topic,
      ''' THEN t2.id END) AS `',
      topic, '`'
    )
  ) INTO @sql
FROM
(
  select count(distinct id) total, topic
  from table2 
  group by topic
  order by total desc
  limit 2
) d;

SET @sql 
  = CONCAT('SELECT t1.year, ', @sql, ' 
            from table1 t1
            left join table2 t2
              on t1.id = t2.id
            group by t1.year');

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

退房小提琴实施。

如何解决这一问题? 此外,作为一个COM导师时提到通过脚本发送这会工作。 任何想法我怎么脚本PHP?

Answer 1:

这是因为PMA不使用相同的mysql会话来执行查询,这就是为什么您会收到错误。

但是,如果你要在脚本中使用相同的MySQL函数它应该工作执行此。



文章来源: MySql #1243 error while executing it through phpMyAdmin