2013-07-02 6 views
0

Я пытаюсь выполнить этот код в phpMyAdmin. Но, я получаю следующую ошибкуОшибка MySql # 1054 при выполнении этого через phpMyAdmin

# 1054 - Неизвестный столбец 'год' в 'списке поля'

SELECT 
    CONCAT('SELECT year2,', 
    GROUP_CONCAT(sums), 
    ' FROM yourtable GROUP BY year2') 
FROM (
SELECT CONCAT('SUM(name=\'', name, '\') AS `', name, '`') sums 
FROM yourtable 
GROUP BY name 
ORDER BY COUNT(*) DESC 
) s 
INTO @sql; 

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

Выезд fiddle для реализации.

Как это исправить? И любые идеи, как я могу писать на PHP?

ответ

1

Year известный объект в MYSQL, если у вас есть столбец с именем «года», попробуйте его с задним клещом «'» ::

SELECT 
    CONCAT('SELECT `year`,', 
    GROUP_CONCAT(sums), 
    ' FROM yourtable GROUP BY `year`') 
FROM (
SELECT CONCAT('SUM(name=\'', name, '\') AS `', name, '`') sums 
FROM yourtable 
GROUP BY name 
ORDER BY COUNT(*) DESC 
) s 
INTO @sql; 

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

+1 бить меня к нему :) – Stephan

+0

@ Стефан: lol :-) –