我正在尝试在phpMyAdmin中执行此代码。但是,我收到了以下错误
#1243 - 给予EXECUTE
的未知预处理语句处理程序(stmt) 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;
查看fiddle以了解实施情况。
如何解决这个问题?此外,作为一名提及者,通过脚本发送时,这将起作用。任何想法如何在PHP中编写脚本?
答案 0 :(得分:0)
这是因为PMA不使用相同的mysql会话来执行查询,这就是您收到错误的原因。
但是如果你使用相同的mysql函数在脚本中执行它,它应该可以工作。