我正在尝试在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中编写脚本?
答案 0 :(得分:1)
Year
是MYSQL中的一个已知对象,如果你有一个名为'year'的列,请使用反向勾选'''::
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;