Я пытаюсь написать запрос, который будет соответствовать частичным совпадениям с сохраненными значениями имени.
Моя база данных выглядит следующим образом
Цитата
FirstName | Middle Name | Surname
----------------------------------
Joe | James | Bloggs
J | J | Bloggs
Joe | | Bloggs
Jane | | Bloggs
Теперь, если пользователь вводит свое имя как
J Bloggs
, мой запрос должен вернуть все 4 строки, поскольку все они являются потенциальными совпадениями.
Аналогично, если пользователь вводит имя
J J Bloggs
, должны быть возвращены все строки.
Если пользователь вводит свое имя как
Joe Bloggs
должны быть возвращены только первые три.
Я попробовал следующее
SELECT *
FROM PERSON
WHERE CONCAT(' ',FirstName,' ',MiddleName,' ', Surname) LIKE '% Joe%'
AND CONCAT(' ',FirstName,' ',MiddleName,' ', Surname, ' ') LIKE '% Bloggs%';
Но это не возвращает 'JJ Bloggs'.
Есть идеи?