You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL报错求助:SQLZOO诺贝尔文学奖查询提示'yr'列不存在

解决SQLZOO「80年代文学奖」习题的报错问题

嘿,我碰到过类似的坑,帮你分析下可能的原因和解决办法:

首先,你收到的Unknown column 'yr' in 'field list'错误,核心是数据库找不到你指定的yr列,常见的原因有这几个:

  • 列名拼写或记忆偏差:SQLZOO的这个习题里,目标表的年份列确实是yr,但也有可能你混淆了其他习题的列名(比如有些类似表会用year作为年份列)。你可以先运行这条语句确认表结构:

    SELECT * FROM world LIMIT 1;
    

    看看返回的结果里有没有yr这个列,如果没有,就换成实际的列名(比如year)再试。

  • 表名拼写错误:你有没有把表名world写错?比如写成word或者worlds?如果表名不对,数据库也会找不到对应的列,仔细检查下表名的拼写。

  • 大小写敏感问题:部分数据库(比如Linux环境下的MySQL)对列名大小写是敏感的,如果实际列名是Yr或者YR,而你写的是小写yr,就会报错。这种情况下可以给列名加上反引号:

    SELECT `yr`, subject, winner FROM world WHERE `yr` >=1980 AND `yr` <=1989 AND subject = 'Literature';
    

另外,你也可以简化一下WHERE条件,用BETWEEN让代码更简洁:

SELECT yr, subject, winner FROM world WHERE yr BETWEEN 1980 AND 1989 AND subject = 'Literature';

先试试确认表结构的方法,应该能很快定位到问题!

内容的提问来源于stack exchange,提问作者elgene

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:00:21