2016-04-29 11 views
0

Ich habe regexp für die Suche nach externen Links auf meiner Website, es funktioniert in PHP fein:MySQL (phpMyAdmin) REGEXP Unterschied zwischen PHP

((http|https):\/\/(?!siteurl.com)[\w\.\/\-=?#]+)

Jetzt möchte ich es in PHPMyAdmin in Registerkarte Suchen verwenden, um Suche in der gesamten Datenbank. Es funktioniert nicht. Gibt es Unterschiede zwischen PHP und MySQL REGEXP? Was sollte in meinem Regexp geändert werden, damit es in PHPMyAdmin funktioniert?

+0

mysql regex nicht unterstützen Rückreferenzierung oder Vorgriffs – rock321987

+0

http://dev.mysql.com/doc/refman/ 5.1/de/regexp.html # operator_regexp – thegio

+0

Es könnte also schwierig sein, diese Regexp in MySQL gleich zu machen ... Aber ist das möglich? –

Antwort

2
WHERE url  REGEXP '^https?://' 
    AND url NOT REGEXP '^https?://siteurl.com' 

Warum nach Sachen nach // suchen? Wenn Sie müssen, beachten Sie, dass MySQL nicht \w oder \d behandelt, so dass Sie etwas wie [-[:alpha:]./=?#]+ benötigen. \w, für sich genommen, ist [[:alpha:]]; \d ist [[:digit:]]. Reference

+0

Wenn Sie suchen in PHPmyAdmin (in der ganzen DB) ist es nicht möglich, WHERE/AND, gibt es nur regulären Ausdruck Option, so dass es in einem Ausdruck sein muss ... –

+0

Wean sich von der Benutzeroberfläche, und lernen, die zu verwenden mysql Kommandozeilenwerkzeug. –

0

Verwenden Sie diese Muster:

\d: [a-zA-Z0-9_]

\w: [0-9]