Ответ 1
SELECT *
FROM table
WHERE CONCAT( nameFirst, ' ', nameLast ) LIKE '%Joe%'
Не забудьте очистить любые пользовательские параметры, такие как "Joe",
Я работаю с существующей базой данных, которая имеет имя и фамилию, разделенные в базе данных. Мне нужно создать функцию, которая будет принимать один результат поиска и возвращать результаты. скажем, моя база данных имеет такую структуру, как....
nameFirst nameLast
Joe Smith
Joe Jones
Joe Brown
Как я мог, используя MySql, взять вход для поиска, который называется "Джо Смит" и просто получить его строку? Но если я поставлю "Джо" в поле поиска, верните их все? Мне нужно взорвать строку с пробелом? благодарю!
SELECT *
FROM table
WHERE CONCAT( nameFirst, ' ', nameLast ) LIKE '%Joe%'
Не забудьте очистить любые пользовательские параметры, такие как "Joe",
SELECT * FROM table WHERE CONCAT(nameFirst, ' ', nameLast) LIKE 'Joe%';
Я предлагаю использовать это, если вы уверены, что ваш поиск начинается с "Джо", чтобы фильтровать больше.
По моему скромному мнению, во многих случаях мы не знаем, является ли поисковый ввод именем или фамилией, поэтому я предлагаю использовать это:
SELECT * FROM table WHERE CONCAT(nameFirst, ' ', nameLast) LIKE 'SEARCH_INPUT%' OR CONCAT(nameLast, ' ', nameFirst) LIKE 'SEARCH_INPUT%';