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操作,建议还是手动敲命令执行。
复制有风险,黏贴需谨慎!!!