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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM