2016-10-28 4 views
1

Ich versuche, eine Suche in der Datenbank mit Sonderzeichen, insbesondere Zeichenfolge mit Apostroph.SQL Suchen nach String in DB mit Sonderzeichen/s

Zum Beispiel möchte ich nach der Zeichenfolge suchen: "Sandy's Hund", aber ich habe gerade "Sandys Hund" eingegeben, ohne den Apostroph. Obwohl "Sandys Hund" in der Datenbank existiert, scheint es in den Ergebnissen nicht zu zeigen.

Hier ist meine Frage:

SELECT * FROM `Table` WHERE `Title` LIKE '%sandys dog%' 

ich überall gesucht, und ich kann nicht eine Lösung zu finden scheinen, die funktioniert.

EDIT Einschränkungen: der String Benutzer Hinweise generiert: - Wenn ein Nutzer nach Hundesand mit dem Apostroph, funktioniert es wie erwartet gut. - Letztendlich möchte ich alle möglichen Ergebnisse erhalten, wenn die Tabelle beide Zeichenfolgen mit und ohne Apostroph enthält.

+0

Warum nicht parametrisierte Abfragen verwenden und nach dem tatsächlichen Wert suchen? Du könntest 'SELECT * FROM Tabelle WHERE Titel LIKE '% sandy% s Hund%'' oder 'SELECT * FROM Tabelle WHERE Titel LIKE '% sandy_s Hund%'' – chris85

Antwort

1

In SQL Server können Sie REPLACE verwenden:

SELECT * 
FROM Table 
WHERE REPLACE(Title, '''', '') LIKE '%sandys dog%' 

Die Doppel-Apostroph in der Zeichenfolge ist ein Escape-Zeichen, so findet es keine Apostrophe in der Zeichenfolge und ersetzt sie mit leeren Saiten.

+0

Awesome! das hat funktioniert. Vielen Dank! – Ivy

+1

Dann, bitte markieren Sie diese Antwort als richtig @ Ivy. Wie es anderen Benutzern auch hilft, diese Antwort leicht zu finden. –

0

Wie wäre das?

SELECT * FROM Table WHERE Title LIKE '%sandy''s dog%' 

oder

SELECT * FROM Table WHERE Title LIKE '%sandy_s dog%' 

Der Unterstrich ist ein "Einzelzeichen" Platzhalter.

Verwandte Themen