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

Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
"Autor: Gunther Pipperr"
prog/sql_like_escape.txt · Zuletzt geändert: 2018/03/15 10:26 von Gunther Pippèrr