SQL查询报错1054:Orders表'Created.at'列无法识别问题咨询
问题原因与解决办法
你的问题并非兼容性问题,核心是列名里的点号被SQL解析器错误解读了。
SQL语法中,点号(.)的作用是分隔表(或表别名)与列名,当你写Created.at时,数据库会默认把Created当成表的别名、at当成列名,自然找不到你实际要查的Created.at列。
解决方法
把包含特殊字符(比如点号)的列名用反引号(`)包裹起来,修改后的查询语句如下:
SELECT `Created.at` FROM Orders;
不同数据库对特殊字符列名的包裹符号有差异:
- MySQL/MariaDB:使用反引号(`)
- SQL Server:使用方括号(
[ ]),即[Created.at] - PostgreSQL:需开启
quoted_identifier参数后,使用双引号("),即"Created.at"
从你给出的错误码1054来看,你使用的是MySQL系数据库,用反引号就能直接解决问题。
内容的提问来源于stack exchange,提问作者beth_9
相关产品推荐
相关产品推荐

