Benutzer-Werkzeuge

Webseiten-Werkzeuge


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

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
prog/sql_like_escape.txt · Zuletzt geändert: 2018/03/15 10:26 von gpipperr