Объедините два столбца в SQL для предложения WHERE

В моем SQL я использую WHERE и LIKE для выполнения поиска. Однако мне нужно выполнить поиск по комбинированному значению из двух столбцов – 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%'

Но, очевидно, это не сработает, потому что поисковый запрос представляет собой комбинированное значение этих двух столбцов.

Используйте следующее:

 WHERE CONCAT(customers.first_name, ' ', customers.last_name) LIKE '%John Smith%' 

Обратите внимание, что для того, чтобы это работало по назначению, имя и фамилия должны быть обрезаны, то есть они не должны содержать ведущие или завершающие пробелы. Лучше обрезать строки в PHP, прежде чем вставлять их в базу данных. Но вы также можете включить обрезку в свой запрос следующим образом:

 WHERE CONCAT(TRIM(customers.first_name), ' ', TRIM(customers.last_name)) LIKE '%John Smith%' 

Я бы начал с чего-то вроде этого:

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

Это вернет результаты, такие как John Smith , Johnny Smithy , Johnson Smithison , потому что знак процента находится только в конце предложения LIKE . В отличие от '%John%' который мог бы вернуть результаты, такие как: aaaaJohnaaaa , aaaSmithaaa .

попробуй это:

 SELECT * FROM customers WHERE concat(first_name,' ',last_name) like '%John Smith%'; 

Справка:
Строковые функции MySQL