MySQL中經常會遇到錯誤1471,這是一種“列列表中的列不在此表中”的錯誤。通常這個錯誤會在查詢或者修改表時出現,下面我們來看一些可能引起這種錯誤的原因。
SELECT a,b,c FROM table1 WHERE id=1; UPDATE table1 SET a='value1', d='value2' WHERE id=1;
在這兩個例子中,我們會發現查詢語句和修改語句中的列列表列出了一列不存在于表中的列“d”。這就是錯誤1471的來源之一。換句話說,當你使用了一個表不存在的列名時,MySQL會返回錯誤1471。
另一個常見的原因是在使用JOIN語句時,你可能會選擇了一個不存在于任何一個表中的列名。例如:
SELECT t1.id, t2.name, t3.address FROM table1 t1 JOIN table2 t2 ON t1.id=t2.id JOIN table3 t3 ON t2.id=t3.id WHERE t1.id=1;
在上面的例子中,我們查詢了三個表中的數據,但是我們選擇了一個不存在于任何一個表中的列“address”。這就是我們得到錯誤1471的原因。
解決這個問題的方法很簡單:確保在列列表中只選擇表中存在的列。如果你正在使用JOIN,那么請確保你在選擇列名時只選擇存在于相應表中的列。如下所示:
SELECT t1.id, t2.name, t3.address FROM table1 t1 JOIN table2 t2 ON t1.id=t2.id JOIN table3 t3 ON t2.id=t3.id WHERE t1.id=1 AND t3.address='value';
通過這種方式,你就可以避免MySQL錯誤1471了。
上一篇css盒子背景圖片設置
下一篇mysql 錯誤100