1

前几天我问了一个关于我的问题的问题,有人建议我使用CONCAT_WS函数。我在本地 mysql 数据库上使用 CONCAT_WS,它运行良好。但它不适用于服务器(托管应用程序)并生成以下错误。

FUNCTION 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

1 回答 1

4

修复它的最简单方法是删除函数名和括号之间的空格,即CONCAT_WS(...)代替CONCAT_WS (...).

来自MySQL 手册

默认情况下,函数名和它后面的括号之间不能有空格。这有助于 MySQL 解析器区分函数调用和对碰巧与函数同名的表或列的引用。

...

您可以通过使用 --sql-mode=IGNORE_SPACE 选项来告诉 MySQL 服务器接受函数名称后的空格。

此外,此行为取决于 MySQL 版本,这就是为什么它在一台服务器上工作而在另一台服务器上不起作用的原因,引自“函数名称解析和解析”手册页:

在 MySQL 5.1.13 中,受 IGNORE_SPACE 影响的函数名数量显着减少,从大约 200 个减少到大约 30 个。

于 2010-09-24T13:14:54.953 回答