【发布时间】:2018-10-13 00:43:03
【问题描述】:
不确定我的列名是怎么回事。
mysql> SELECT fullname FROM country WHERE year-independence > 1945;
ERROR 1054 (42S22): Unknown column 'year' in 'where clause'
这是表限制5:
+----------------------------------------------+
| code | fullname | continent | region | area | year-independence | population | avg-lifespan | avg-GNP | form-government |
+------+----------------------+---------------+---------------------------+--------+-------------------+------------+--------------+-----------+----------------------------------------------+
| ABW | Aruba | North America | Caribbean | 193 | 0 | 103000 | 78.40 | 828.00 | Nonmetropolitan Territory of The Netherlands |
| AFG | Afghanistan | Asia | Southern and Central Asia | 652090 | 1919 | 22720000 | 45.90 | 5976.00 | Islamic Emirate |
| AGO | Angola | Africa | Central Africa | 124670 | 1975 | 12878000 | 38.30 | 6648.00 | Republic |
| AIA | Anguilla | North America | Caribbean | 96 | 0 | 8000 | 76.10 | 63.20 | Dependent Territory of the UK |
| ALB | Albania | Europe | Southern Europe | 28748 | 1912 | 3401200 | 71.60 | 3205.00 | Republic
【问题讨论】:
-
你能在列上试试反勾号吗?
-
`独立年份`
-
MySQL 将
year-independence解释为算术表达式,因此它正在寻找名为year和independence的列。您需要使用反引号转义year-independence以防止这种情况发生。 -
另一个名称不佳的列导致问题的示例。使用真实的列名,并使它们在您的 UI 中漂亮。一个很好的例子:
yearindependence作为列名。当需要显示时,使用SELECT yearindependence as "Year Of Independence"。
标签: mysql sql mysql-error-1054