Wie kann ich in einer Spalte nach einem bestimmten Muster suchen?
Zum Beispiel möchte ich alle Benutzernamen erhalten, die entweder mit Buchstabe A oder B beginnen.
(Übrigens: Dies ist markiert oracle
, könnte aber auch in anderen RDBMS interessant sein.)
oracle
regular-expression
Sebastian Roth
quelle
quelle
Antworten:
Ihre Frage erfordert keine regulären Ausdrücke:
Für Oracle gibt es REGEXP_LIKE ; Postresql, es gibt ÄHNLICH ZU ; MySQL hat REGEXP . Eine Sache, an die Sie sich erinnern sollten, ist jedoch, dass nicht alle Engines für reguläre Ausdrücke gleich sind. Nur weil sie reguläre Ausdrücke unterstützen, bedeutet dies nicht, dass sie notwendigerweise Aussagen zu Wortgrenzen, nicht gierigen Quantifizierern oder Behauptungen mit negativem Aussehen usw. unterstützen.
quelle
SELECT mname FROM names WHERE regexp_like(mname,'^[AB].*$');
^[AB]
... das.*$
ist überflüssig