2017-02-03 4 views
0

Verwenden von JQuery UI Autocomplete UND Arbeit mit einem schrecklichen Datenbankschema ist möglich, nach einem Anfang eines Begriffs und seiner Abkürzung zu suchen?JQuery Autocomplete Suche nach Begriff und seiner Abkürzung

Nehmen wir an, ich die folgenden Kirchen in meiner Datenbank haben:

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

Wie kann ein Benutzertyp St. und senden Sie es sowohl St. und St

Ich dachte, dieser einfachen 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 %'); 

Gibt es eine Lösung für mein Problem?

+0

WHERE '% Sain%' School_Name LIKE OR 'St%' School_Name LIKE nein? – Laurianti

+0

erledigt die Abfrage die Aufgabe? –

+0

Es tut es nicht. Einer ist abgestimmt und zurückgegeben, aber nicht beides. – Joseph

Antwort

0

In SQL verwenden wie das

Verwendung CHARINDEX()

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

Hoffnung Sein funktioniert !!

0

Meine Lösung:

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'); 
    } 
Verwandte Themen