检查是否在mySQL的多个列之一中找到字符串

see*_*edg 2 mysql sql

我需要检查是否在一个或多个列中找到了字符串。

基本上,我有一个程序可以让您检查多个字段(名称,姓氏等)。

如果同时检查了名称和姓氏,并且用户仅输入了名称,例如chris,则可以使用如下所示的LIKE参数在mySQL中轻松检查它:

select * from tblClients WHERE name LIKE '%john%';
Run Code Online (Sandbox Code Playgroud)

这显然有效。但是,我需要做的是,如果同时检查了姓名和姓氏,它将执行以下操作:

select * from tblClients WHERE (name or surname) LIKE '%john%';
Run Code Online (Sandbox Code Playgroud)

我希望如果在有一个名为john doe的客户端时执行此逻辑,则第二个命令仍会找到该客户端。

我尝试了此命令,未发现语法错误,但是返回0个结果。

有什么建议吗?

J__*_*J__ 5

您不能只使用单独的WHERE子句,例如:

SELECT * FROM tblClients
WHERE (name LIKE '%john%')
OR (surname LIKE '%john%')
Run Code Online (Sandbox Code Playgroud)

您必须根据用户选择的列来修改SQL。

  • 与 davethegr8 的解决方案类似,但括号是可选的。 (2认同)