2010-09-24 107 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

相关问题