【问题标题】:Query error Unknown column 'Count' in 'field list'查询错误“字段列表”中的未知列“计数”
【发布时间】:2014-11-11 13:42:55
【问题描述】:

我正在尝试对表名中包含房屋的所有表中的 picks 列求和。

SELECT SUM(Picks) AS A 
  FROM (SELECT TABLE_NAME 
          FROM information_schema.TABLES 
         WHERE TABLE_NAME LIKE '%house' AND 
               table_schema='myschema'
       ) AS T

此 SQL 语句导致消息

“字段列表”中的未知列“选择”

如果我只查询:

SELECT TABLE_NAME 
  FROM information_schema.TABLES 
 WHERE TABLE_NAME LIKE '%house' AND
       table_schema='myschema'

它返回预期的表列表。我已经验证每个返回的表都有一个计数列,并且所有的数据类型都相同VARCHAR(45)

我错过了什么?

【问题讨论】:

  • count是mysql保留字
  • 谢谢凯,但它也发生在其他不是保留字的查询上。
  • 如果我选择 SUM(Picks) AS A FROM GoHouse,它会返回总和。 GoHouse 是查询表名返回的表之一。
  • 我希望您在字段名称上可能会出错。它可能会“挑选”而不是“挑选”

标签: mysql


【解决方案1】:

这是您的查询:

SELECT SUM(Picks) AS A 
FROM (SELECT TABLE_NAME 
      FROM information_schema.TABLES 
      WHERE TABLE_NAME LIKE '%house' AND 
            table_schema='myschema'
    ) AS T

您缺少的是子查询没有名为Picks 的列。我的意思是,以下方法会起作用:

SELECT SUM(Picks) AS A 
FROM (SELECT TABLE_NAME, 1 as Picks
      FROM information_schema.TABLES 
      WHERE TABLE_NAME LIKE '%house' AND 
            table_schema='myschema'
    ) AS T

或者这个:

SELECT COUNT(*) as Picks
FROM (SELECT TABLE_NAME
      FROM information_schema.TABLES 
      WHERE TABLE_NAME LIKE '%house' AND 
            table_schema='myschema'
    ) AS T

但在您的查询中,Picks 未定义。因此出现错误。

而且,information_schema.tables 中也没有这样的列。这让我觉得你很困惑。也许该列存在于“house”表中。但是,您不能像那样引用这些表。如果您真的想动态地将表名放入查询中,您可能需要调查准备好的语句 -- prepare/execute(参见 here)。

【讨论】:

  • 这不会给出错误,因此我们可能走在正确的轨道上。但它没有给出正确的结果。它给出了 13,这是名称中有房子的桌子的数量。 Picks 在带有房子名称的表中。我想通过从 information_schema.TABLES 中获取这些表名来总结所有房屋表中的所有选择列。 SELECT SUM(Picks) AS A FROM (SELECT TABLE_NAME, 1 as Picks FROM information_schema.TABLES WHERE TABLE_NAME LIKE '%house' AND table_schema='myschema' ) AS T
  • 我刚刚重读了您的评论“也许该列存在于“house”表中。但是,您不能像那样引用这些表。确实如此。有没有不同的方法来完成我想做的事情?
  • @DenverDevelopers 。 . .是的。这就是为什么我引用准备好的语句的文档。
猜你喜欢
  • 1970-01-01
  • 2010-11-23
  • 1970-01-01
  • 1970-01-01
  • 2019-08-03
  • 1970-01-01
  • 2016-10-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多