MySql Unknown column 的解决方案

解决方案:

有很多使用Mysql的用户可能都会遇到这个问题,明明表中这个列存在,为什么在查询的时候说找不到这个列名呢?

我遇到的原因就是列名前面含有空格:如下

复制代码
create table students(
   sid int,
   _math decimal(9,2),
   english varchar(3)
 );

insert into students values(1,50,'50'),(2,70,'70'),(3,80,'80'),(4,null,'80'),(5,80,null),(6,null,null);
mysql> select * from students;
+---------+-----------+-------------+
|   sid |   _math |   english |
+---------+-----------+-------------+
|       1 |     50.00 | 50          |
|       2 |     70.00 | 70          |
|       3 |     80.00 | 80          |
|       4 |      NULL | 80          |
|       5 |     80.00 | NULL        |
|       6 |      NULL | NULL        |
+---------+-----------+-------------+
select * 不容易看出问题,我们用show create来看一下:
| students | CREATE TABLE `students` (
  `  sid` int(11) DEFAULT NULL,
  `  _math` decimal(9,2) DEFAULT NULL,
  `  english` varchar(3) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
每个列名前面多了很多空格。
解决方案,删除表重建:
drop table students;


错误原因:
1、很可能你创建表的代码是copy的网上的。例如我上面输入的那个创建表的语句就会出现问题。
2、你的编辑器识别成了中文空格。
一般在记事本中输入是不会出现这种问题的。
复制代码

 

 

 

Mysql5.x手册 http://doc.mysql.cn/
Mysql官网 http://dev.mysql.com/
Mysql5.7参考手册 http://dev.mysql.com/doc/refman/5.7/en/
其他参考手册
CSDN-Mysql知识库

author: liuning

 

posted on   随风浪子的博客  阅读(33325)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示