ОШИБКА 1054 (42S22): неизвестный столбец 'year' в 'where clause' - PullRequest
0 голосов
/ 13 октября 2018

Не уверен, что происходит с именем моего столбца.

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                         

Ответы [ 2 ]

0 голосов
/ 13 октября 2018

Некоторые объекты в MySQL, включая базу данных, таблицу, индекс, столбец, псевдоним, представление, хранимую процедуру, раздел, табличное пространство, группу ресурсов и другие имена объектов, называются идентификаторами.[...] Если идентификатор содержит специальные символы или является зарезервированным словом, вы должны заключать его в кавычки при каждом обращении к нему.[...]

согласно https://dev.mysql.com/doc/refman/8.0/en/identifiers.html

Символом кавычки идентификатора является обратная черта (`):

mysql> SELECT * FROM `select` WHERE `select`.id > 100;

В вашем случае

mysql> SELECT `fullname` FROM `country` WHERE `year-independence` > 1945;

Вы могли заметить, что я окружил все идентификаторы обратными метками, так как это хорошая привычка.

0 голосов
/ 13 октября 2018

Попробуйте:

SELECT fullname FROM country WHERE `year-independence` > 1945;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...