Я пытаюсь выполнить этот код в phpMyAdmin. Но, я получаю следующую ошибку
# 1243 – Неизвестный обработчик инструкции (stmt), предоставленный EXECUTE
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;
Проверьте скрипт для реализации.
Как это исправить? Кроме того, как сказал наставник, это будет работать при отправке через скрипт. Любые идеи, как я могу писать на PHP?
Это связано с тем, что PMA не использует один и тот же сеанс mysql для выполнения запросов, поэтому вы получаете ошибку.
Но если вы должны выполнить это в скрипте, используя ту же функцию mysql, он должен работать.