mysql出现 Unknown column 'bname' in 'where clause'和Unknown column 'bid' in 'field list'

在用mysql数据库建表和修改数据库数据时,出现  Unknown column 'bname' in 'where clause'和Unknown column 'bid' in 'field list'。

除了网友提供的诸多种情形和解决方案,答主列举一种特殊的,由懒而生的一个出错情景:

 

首先创建了一张bank表,插入了2条数据,用select语句查询如下图所示

 原本是想修改一条数据的,但是发现报了一个错: Unknown column 'bname' in 'where clause'

 

然后再用select去查表中字段,也报了一个错:Unknown column 'bid' in 'field list'

 

但是用show tables 和select * from bank;这两条命令都能查到表和表中数据。在网上搜了一下,什么字符编码不匹配、加双引号什么的都试了一遍,还是没有解决。

还是旁边的同事提了一嘴,手动再创建一张一样的表,再去查。

最终发现了问题:将建表语句直接复制黏贴在命令行执行,命令会多一些空行,命令行是识别不了的,自然你创建的字段就不是原来的字段了,而是“若干空格+字段”的全新字段,用建表语句中的字段去查,就查不到了。现象如下:

用show create table bank;命令去查看建表语句,可以看到bid字段完整的形式是‘    bid’,前面有若干空格。再用bid去查自然查不到,会报错。

 命令行执行建表和crud操作,建议还是手动敲命令执行。

复制有风险,黏贴需谨慎!!!

原文地址:https://www.cnblogs.com/hejh/p/10751531.html