2010-09-24 163 views
1

前幾天我問了一個question關於我的問題,我被建議使用CONCAT_WS函數。我在我的本地mysql數據庫上使用CONCAT_WS,它工作正常。但它不適用於服務器(應用程序託管)並生成以下錯誤。MySQL:CONCAT_WS功能在本地運行但不在服務器上

功能test.CONCAT_WS不存在

這裏test錯誤的字符串是在服務器上我的數據庫名。

我的查詢是這樣的:

SELECT * FROM patient WHERE CONCAT_WS (',', LastName,FirstName,BirthDate) NOT IN ('Abdul,Quddus,2000-09-30','Wasim,Akram,1993-09-12'); 

有人能告訴我的問題或建議我另一種解決方案上面鏈接的問題問?

由於

回答

4

修復它是由函數名和括號之間刪除空格最簡單的方法,即CONCAT_WS(...)代替CONCAT_WS (...)

MySQL Manual

默認情況下,必須有一個函數名和 它後面的括號之間沒有空格 。這個 幫助MySQL解析器將函數調用和參考 之間的 區分爲碰巧與 具有相同名稱的表或列。

...

你可以告訴MySQL服務器 由 接受函數名後的空間與 --sql模式= IGNORE_SPACE選項啓動它。

而且,這種行爲取決於MySQL版本,這就是爲什麼它工作在一臺服務器上,並從「Function Name Parsing and Resolution」手冊頁面上的其他不起作用,報價:

數受IGNORE_SPACE 函數名顯著在MySQL 5.1.13減少 ,從 約200至約30

+0

+1不錯的工作。謝謝 – NAVEED 2010-09-24 13:26:40

相關問題