prog:sql_like_escape
Suchen mit dem Like Operator nach Texten, die einen "_" enthalten
In SQL kann der „_“ im Like Operator verwendet werden, um genau ein beliebiges Zeichen an genau dieser Stelle zu finden.
Beispiel:
SELECT ename FROM emp WHERE ename LIKE "_iger" --- Tiger
Wie suche ich jetzt aber nach allen Datensätzen, die einen Underscore „_“ als Text enthalten?
1. Versuch
So funktioniert es nicht!
SELECT email FROM emailaddresses WHERE email LIKE '%_%' --- gunther@testmal.cn gunther_test@test.cn ... -- Findet alle!
2. Versuch
Lösung: Das Syntaktische Element „_“ escapen, damit es als Text gesucht wird!
SELECT email FROM emailaddresses WHERE email LIKE '%\_%' ESCAPE '\'; --- gunther_pipperr@testmail.cn SELECT email FROM emailaddresses WHERE email like '%-_%' ESCAPE '-'; --- gunther_pipperr@testmail.cn
3. Versuch (ab 10g) Regulärer Ausdurck
SELECT email FROM emailaddresses WHERE regexp_like(email,'^.*[_].*$'); --- gunther_pipperr@testmail.cn
⇒ Siehe auch Reguläre Ausdrücke in der Oracle Datenbank in SQL verwenden
prog/sql_like_escape.txt · Zuletzt geändert: 2018/03/15 10:26 von gpipperr