Freitag, 15. Februar 2008

MySQL kann Reguläre Ausdrücke

Regex mit MySQL

Beim Durchstöbern der MySQL-Dokumentation bin ich eben auf den Befehl REGEXP gestossen. Mit dem Befehl REGEXP ist es möglich Reguläre Ausdrücke auf Tabellenspalten anzuwenden. So wie ich sehen konnte ist die Regex-Unterstützung POSIX kompatibel - somit sind wohl ganz interessante Anwendungsfälle möglich.

Regex Beispiel in MySQL

Ein Beispiel für einen Regulären Ausdruck könnte so aussehen:

Download Code!

  1.  
  2. SELECT id FROM comments WHERE commentText REGEXP 'foo|foobar';
  3.  

In diesem Beispiel werden aus der Tabelle comments die Spalte ID bzw. die ID zurückgeliefert, deren Inhalt in der Tabelle commentText die Zeichenkette foo oder foobar aufweist.

Ziemlich nette Sache, wenn jetzt noch Subselects gehen würden - also mit Klammern arbeiten - dann wäre dies eine echte Arbeitserleichterung. (Mit dem Klammern muss ich mal testen ob das möglich ist - das Handbuch schweigt leider darüber.

Bewertung: 5 von 5, 1 Stimme(n) 1322 Klicks
Datenbank
Von Mr.Foo in Datenbank am 15.02.08@11:16 Uhr

Trackbacks
Trackback für spezifische URI dieses Eintrags

Keine Trackbacks

5 Kommentare
Ansicht der Kommentare: (Linear | Verschachtelt)

Michael Rölle - #1 - 19.02.2008 00:44 - (Antwort)

Subselect sind unter MySQL kein Problem. Die kannst Du problemlos nutzen.

Mr. Foo - #1.1 - 19.02.2008 13:57 - (Antwort)

Kann ich auch auf die Ergebnisse der Subselects irgendwie zugreifen?

Michael Rölle - #2 - 19.02.2008 15:49 - (Antwort)

In etwa so:
SELECT K.Name, B.Artikel,
(SELECT count(*) FROM Bestellung B1 WHERE
B1.KdNr.=K.KdNr) AS Anzahl
FROM Kunden K, Bestellung B
WHERE K.KdNr = B.KdNr;

Also einfach mit AS einen Namen zuweisen. Das geht aber nicht mit sehr alten MySQL-Versionen.

Mr. Foo - #2.1 - 19.02.2008 16:00 - (Antwort)

Ups, ich glaube wir haben uns missverstanden - oder ich mich falsch ausgedrückt. Ich meinte die Subselects in einem regulären Ausdruck.

SELECT id
FROM comments
WHERE commentText REGEXP 'someText(.+?)otherText(.*?)$';

Michael Rölle - #2.1.1 - 19.02.2008 17:38 - (Antwort)

Oh, dann habe ich es falsch verstanden. Darauf kenne ich auch keine Antwort. Wäre aber auch interessant zu wissen.


Kommentar schreiben

Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
Sie können [geshi lang=LANG][/lang] Tags verwenden um Quellcode abhängig von der gewählten Programmiersprache einzubinden
 
 

Mr. Foo

MySQL kann Reguläre Ausdrücke

  • Homepage

Suche

Kategorien

  • Android (2)
  • C-Sharp (4)
  • Datenbank (30)
  • Delphi (2)
  • Entwicklung (36)
  • Flash (5)
  • Games (10)
  • Gutscheine (4)
  • Hardware (14)
  • HTML CSS (16)
  • Internet (88)
  • Java (32)
  • Javascript (24)
  • Linkdump (9)
  • Linux (102)
  • Low-Level (10)
  • Lua (8)
  • Musik (9)
  • Netzwerk (25)
  • New World Order (109)
  • Perl (3)
  • PHP (130)
  • Magento (5)
  • Symfony (3)
  • Zend Framework (7)
  • Probleme und Lösungen (26)
  • Python (22)
  • Ressourcen (23)
  • Sicherheit (91)
  • Software (60)
  • Sonstiges (47)
  • Own Stuff (48)
  • Spass (46)
  • Technik / Wissenschaft (4)
  • Tips (15)
  • Weisheiten (17)
  • Windows (23)
  • Wort des Tages (15)


Alle Kategorien

Archive

  • Mai 2012
  • April 2012
  • März 2012
  • Das Neueste ...
  • Älteres ...

Abonnieren lohnt sich!

  • XML RSS 2.0 feed
  • ATOM/XML ATOM 1.0 feed
  • XML RSS 2.0 Kommentare

Tagcloud

Datenbank Entwicklung Internet Java Javascript Linux Lösung Netzwerk News New World Order PHP Problem Probleme und Lösungen Sicherheit Software Sonstiges Spass Tipp Update Windows

Beliebte Einträge

  • Magento ist scheisse (197)
  • Plugin-container.exe deaktivieren (107)
  • BWin Betrug und Abzocke bei Minigames? (65)
  • C compiler cannot create executables unter Debian (53)
  • Scheiss Linux - USB-Platte viel zu langsam (wenns mal funktioniert) (43)
  • Sicheres Kontaktformular mit PHP - Spam verhindern (37)
  • UML-Diagramme aus Java-Klassen generieren – Java2UML (28)
  • Es konnte keine TCP/IP-Verbindung mit dem Host hergestellt werden (28)
  • Option Bug im Internet Explorer bei Nutzung von innerHTML und Javascript (24)
  • Zend Studio - Javaw.exe lastet die CPU aus (24)

Kommentare

Hugo zu BWin Betrug und Abzocke bei Minigames?
So, 20.05.2012 12:25
ich habe mich gestern auf BWIN reg [...]
Ubuntu 12.04 zu The assembly mscorlib.dll was not found or could not be loaded.
Fr, 18.05.2012 17:11
Hat bei mir leider nicht geklappt. [...]
Oliver Riske zu Es konnte keine TCP/IP-Verbindung mit dem Host hergestellt werden
Di, 15.05.2012 20:38
Super Danke!
anon zu BWin Betrug und Abzocke bei Minigames?
Sa, 05.05.2012 18:43
ihr scheiss betrüger
Jürgen zu Unable to elevate error:1814 VLC Problem
Mi, 02.05.2012 16:54
So einfach ist es bei mir jedenfal [...]
 

Kontakt/Informationen