2017-02-03 8 views
0

Использование автозаполнения пользовательского интерфейса JQuery И работа со страшной схемой базы данных позволяет найти начало термина и его аббревиатуру?JQuery Autocomplete для поиска термина и его аббревиатуры

Давайте предположим, что у меня есть следующие церкви в моей базе данных:

St Ignatius 
St Mary of Sacred Heart 
Saint Joseph 
Saint Peter the Apostle 
St Peter First Lutheran Church 

Как тип пользователя Saint и он может вернуться как Saint и St

Я думал об этом просто SQL UNION:

SELECT School_Name FROM mi_firstyear_advisors WHERE (School_Name LIKE '%Sain%') 
UNION 
SELECT School_Name FROM mi_firstyear_advisors WHERE (School_Name LIKE 'St %'); 

Есть ли решение моей проблемы?

+0

ГДЕ School_Name LIKE '% Саин%' ИЛИ ​​School_Name LIKE '% St' нет? – Laurianti

+0

выполняет ли запрос работу? –

+0

Это не так. Один из них согласован и возвращен, но не тот и другой. – Joseph

ответ

0

В SQL Server Использование, как что

Использование CHARINDEX()

DECLARE @Name nvarchar(max) 
Begin 
SELECT School_Name FROM mi_firstyear_advisors WHERE CHARINDEX(@Name,School_Name) 
End 

Надежда Its работает !!

0

Мое решение:

switch($term){ 
     // If any variant of 'saint' is entered, search for any variant of 'saint' 
     case (preg_match('/st .*/', $term) ? true : false): 
     case (preg_match('/st\..*/', $term) ? true : false): 
     case (preg_match('/sai.*/', $term) ? true : false): 
     $stmt = $conn->prepare('SELECT School_Name FROM mi_firstyear_advisors WHERE School_Name LIKE ":term" OR School_Name LIKE "st %" OR School_Name LIKE "st. %" OR School_Name LIKE "%saint%"'); 
     break; 

     // else just look for the given term 
     default: 
     $stmt = $conn->prepare('SELECT School_Name FROM mi_firstyear_advisors WHERE School_Name LIKE :term'); 
    } 

 Смежные вопросы

  • Нет связанных вопросов^_^