通过phpMyAdmin执行它时MySql#1054错误

时间:2013-07-02 07:05:36

标签: php mysql sql phpmyadmin mysql-error-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 个答案:

答案 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;
相关问题