Ich möchte eine Eingabezeichenfolge auf meiner PHP-Seite auf die gleiche Weise abgleichen, wie dies mit dem LIKE-Befehl in SQL (MySQL) geschieht, um die Konsistenz anderer Suchen zu gewährleisten. Da (ich habe gesehen, aber nicht verstehen) einige der PHP-Syntax enthält SQL-Befehle ich frage mich, ob dies möglich ist?
Der Grund dafür ist, dass ich jetzt eine Suche nach einem Schlüsselwort im Vergleich zu Feldern in der DB implementiere, die in einem serialisierten Array gespeichert sind, das ich in PHP desialisieren und je nach Struktur des Arrays suchen muss. Ich kann die Tabelle nicht abfragen, sondern benötige nur die Abgleichsfunktion der Abfrage. Andernfalls muss ich eine alternative Abgleichsroutine finden, die nicht konsistent sein wird. Ich kann nicht zurückgehen und die DB neu strukturieren, da dies in der Spezifikation nicht vorgesehen war. Ja, ich brauche einen hässlichen Hack, aber ich suche nach dem elegantesten.
Wenn dies nicht möglich ist, könnte ich jede Empfehlung zum Abgleich von vom Benutzer eingegebenem Text mit gespeichertem Text verwenden.
EDIT (zur Klarstellung): mein Hauptproblem ist, dass ich nicht genau weiß, wie der LIKE-Befehl funktioniert (ich kopiere nur den Code), und da das Schlüsselwort ein gewisses Maß an Vagheit impliziert, möchte ich, dass diese Vagheit erhalten bleibt, wenn ich zu einem regulären Ausdruck wechsle. Ich bin besser mit Regex, aber nicht so gut mit like. Meine Abfrage lautet "LIKE 'matchme%'".
0 Stimmen
Wie sieht die Abfrage aus der Sicht des Benutzers aus? Dürfen sie Wildcards wie "%" eingeben oder nur reinen Text?
0 Stimmen
Der Benutzer gibt den Text ein, ich füge die Platzhalter im Hintergrund hinzu. Ich verwende ein %. LIKE 'text%'
0 Stimmen
Kumpel - LIKE ist deterministisch. Es ist eine Stringsuche. Tun Sie es in der DB.
0 Stimmen
Matt, es wird als serialisiertes Array in der Datenbank gespeichert. Ich weiß nicht, warum, aber es ist genau dort in seinem Text.
0 Stimmen
OIS: Ja, das sehe ich jetzt. Mein Fehler. Danke!