在用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操作,建議還是手動敲命令執行。
復制有風險,黏貼需謹慎!!!