MySQL SQLSTATE: Column not found: 1054错误
在使用 MySQL 数据库查询时,常会遇到 “MySQL SQLSTATE: Column not found: 1054 Unknown column ‘id’ in ‘where clause’” 的错误。这个错误代表的意思是在查询语句中指定了一个并不存在的列名,这个错误的原因可能有很多,例如表名、列名或者 SQL 语句书写的错误。
阅读更多:MySQL 教程
表名、列名写错的情况
- 表名写错:在查询语句中表名写错了,会导致系统无法找到对应的表明。例如下面的查询语句:
select * from `songs_info` where `songs_id` = 5 limit 1
在表名处写成了 songs_info ,如果实际表名是 songs,那么就会出现错误:
Unknown column 'songs_id' in 'where clause'
- 列名写错:在查询语句中列名写错了,会导致系统无法找到对应的列名。例如下面的查询语句:
select * from `songs` where `ids` = 5 limit 1
在列名处写成了 ids,如果实际列名是 id,那么就会出现错误:
Unknown column 'ids' in 'where clause'
SQL 语句书写错误的情况
- 缺少空格:在 SQL 语句书写中缺少空格会导致 SQL 解析器无法正确解析该语句。例如下面的查询语句:
select * from`songs`where`id`=5limit1
在列名、表名、关键字等地方缺少空格,这样就会造成错误。
- 拼写错误:在 SQL 语句书写中拼写错误会导致 SQL 解析器无法正确解析该语句。例如下面的查询语句:
select * from `songs` where `id` = 5 limt 1
在 limit 关键字中拼写错误,应该为 limit ,这样就会造成错误。
总结
在使用 MySQL 数据库查询时,注意表名、列名、SQL 语句等方面的书写是否准确无误,避免出现无法找到列名的错误。另外,在使用 alias 时也要避免和 MySQL 关键字冲突。正确的 SQL 查询语句应该是这样的:
select * from `songs` where `id` = 5 limit 1
极客教程