В моем 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