Question

I am trying to execute this code in phpMyAdmin. But, I'm getting following error

#1054 - Unknown column 'year' in 'field list'

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;

Check out fiddle for implementation.

How to fix this? And any ideas how do I script in PHP?

Was it helpful?

Solution

Year is a known object in MYSQL, if you have a column named 'year', try it with a back-tick '`'::

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;
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top