2017-08-11 28 views
1

當嘗試在數據庫上執行更新時,出現非常奇怪的錯誤。這是在使用MySQL 5.7.19-0ubuntu0.16.04.1的Ubuntu 16.04服務器上。查詢是:MySQL錯誤「以前發現別名」當別名不在查詢中時

UPDATE athlet_teamseason SET offkeyreturners ='test'WHERE athlet_teamseasonid = 29701;

MySQL的錯誤是:

1064 - 你在你的SQL語法錯誤;檢查對應於您的MySQL服務器版本的手冊,在'offkeyreturners ='測試'附近使用正確的語法'。 id = 29701' 在行1

我在phpMyAdmin這樣做,它給多一點信息:在分析過程中發現

2個錯誤。

以前發現別名。 (在位置50處的「」附近) 先前發現了別名。 (靠近「‘測試’」在第51位)

如果我直接在phpMyAdmin的用戶界面嘗試此更新(搜索記錄,編輯的字段值,提交表單)它的工作原理,以及顯示的查詢是:

UPDATE athlet_teamseason SET offkeyreturners ='test'WHERE athlet_teamseasonid = 29701;

看起來是相同的。但是,如果我做了兩者之間的字符串比較,我得到:

Diff showing query differences

因此,儘管它們看起來是一樣的,是有區別的地方。

查詢是從數據庫中的表創建的,使用連接和引用源表中的單元格。例如:!

= 「UPDATE SET athlet_teamseasonoffkeyreturners = '」!&數據I2 & 「'。WHERE athlet_teamseasonid =」 &數據A2 & 「;」

我有成千上萬的這些,他們都產生相同的錯誤。我在舊服務器上做了幾次,可能是MySQL 5.7的問題?

+0

我猜你的字段中有一些非打印字符。 – Uueerdo

+0

謝謝,這也發生在我身上。我用我的光標鍵在文本上移動以查看是否可以檢測到,但沒有運氣。 –

+0

光標鍵不一定有助於非空白字符;您通常可以獲得更好的結果,以查找與您遇到問題的值相關的LENGTH函數的差異;或者你可能對正則表達式有一些運氣。 – Uueerdo

回答

0

感謝Uueerdo,我在查詢中消除了非打印字符。

+0

您可能想要展示如何在您的情況下將其過濾出來,以便其他人可以使用它們。 – Uueerdo

+0

我放棄了試圖找到它們。我只是手動重新輸入查詢,沒有從我的示例查詢中複製/粘貼。 –