regex aber "rückwärts"

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • regex aber "rückwärts"

    Servus
    Wollt mich mal erkundigen, ob es mit MySQL irgendwie möglich ist, alle Inhalte der Spalte xy, welche Strings mit Regular Expressions beinhalten schnell gegen einen anderen String prüfen zu lassen und zwarmöglichst, ohne alle Einträge in PHP zu laden und dann mittels forech oder while zu prüfen.. (Da es zum Teil auch 1000 Einträge sein können)

    Also praktisch eine art foreach im query.

    Code:
    NIMM ALLE EINTRÄGE AUS SPALTE xy UND BENUTZE SIE ALS REGEX PATTERN GEGEN DEN STRING 'abcdefg'
    Ist das irgendwie möglich?

    Viele Grüße

    Fabian
    Micronax.de

  • #2
    also REGEXP wird die Spalte vermutlich nicht als Pattern verwenden können. (Hast du ja sicher schon probiert?)

    Ansonsten fällt mir da nichts ein. Zudem wäre das verständlicherweise auch ziemlich unperformant.

    Aber vielleicht beschreibst du mal dein Vorhaben, wäre ja nicht das erste mal, dass wir dein Konzept verbessern können.

    Kommentar


    • #3
      Das ganze ist Teil einer komplizierten Template-Engine mit vielen Funktionen und Extension-Manager.

      In der Datenbank habe ich jetzt eine Tabelle namens pages wo z.b. die Berechtigungen und der templatename für die jeweilige Seite drin stehen.

      Das Script ließt jetzt also die angeforderte Seite aus (z.B. $page=/account/register/step1) und sendet dann einen Query ab

      (SELECT * FROM pages WHERE page='$page')

      da kommen dann schonmal einige Daten raus.

      Es kann aber auch sein, ich z.B. für ganze "Unterverzeichnisse" etwas global definieren will. Dann schreibe ich z.b. in die DB einfach nur "/account/register". Da Script soll dann praktisch alle Einträge aus der Datenbank auf die Aktuelle Seite prüfen

      Also $page auf "^/account/register". Wenn matches entdeckt wurden, soll der letzte ausgelesen werden und die Daten aus dem ersten query-result überschrieben werden oder halt andersrum.. oder wie auch immer^^

      Problem ist jetzt: Das passiert immer, wenn eine Seite angefordert wird und wenn ich sagen wir mal 1000 Seiten in der DB habe und jedes mal alle abrufe und mit 'ner While-Schleife alle mittels preg_match checke.. kann das die Ladezeit schon ordentlich verzögern.. UNd das möchte ich meinen Usern nicht antun.. Deshalb such' ich ne Alternative.

      lg

      Kommentar


      • #4
        Hmm, das wäre ich mit ner vernünftigen Hierarchie (a la NestedSets o.ä.) angegangen.

        Dein Vorhaben kannst du imho nur durchs Cachen der Seiten umgehen, vernünftig lösen lässt sich das sonst vermutlich nicht.

        Kommentar


        • #5
          Ich werd's jetzt (erstmal) anders lösen: Ich treffe praktisch eine Vorauswahl die um einiges kleiner ausfallen dürfte und dann machte ich das mit ner While-Schleife

          Trotzdem danke

          lg

          Kommentar

          Lädt...
          X