====== 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 [[prog:sql_regular_expression|Reguläre Ausdrücke in der Oracle Datenbank in SQL verwenden]]