一尘不染

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

sql

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

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

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

select * from tblClients WHERE name LIKE '%john%';

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

select * from tblClients WHERE (name or surname) LIKE '%john%';

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

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

有什么建议吗?


阅读 117

收藏
2021-03-10

共1个答案

一尘不染

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

SELECT * FROM tblClients
WHERE (name LIKE '%john%')
OR (surname LIKE '%john%')

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

2021-03-10