在SQL中为WHERE子句组合两列

18 mysql sql

在我的SQL中,我使用WHERELIKE子句来执行搜索.但是,我需要对两列的组合值执行搜索 - first_name并且last_name:

WHERE customers.first_name + customers.last_name LIKE '%John Smith%'

这不起作用,但我想知道如何沿着这些方向做点什么?

我试图通过两列分开搜索,如下所示:

WHERE customers.first_name LIKE '%John Smith%' OR customers.last_name LIKE '%John Smith%'

但显然这不起作用,因为搜索查询是这两列的组合值.

Dmy*_*nko 29

使用以下内容:

WHERE CONCAT(customers.first_name, ' ', customers.last_name) LIKE '%John Smith%'
Run Code Online (Sandbox Code Playgroud)

请注意,为了使其按预期工作,应修剪名字和姓氏,即它们不应包含前导或尾随空格.在插入数据库之前,最好在PHP中修剪字符串.但您也可以将修剪结合到您的查询中,如下所示:

WHERE CONCAT(TRIM(customers.first_name), ' ', TRIM(customers.last_name)) LIKE '%John Smith%'
Run Code Online (Sandbox Code Playgroud)