Äquivalent von explode (), um mit Strings in MySQL zu arbeiten
In MySQL, ich will in der Lage sein, um die Suche für '31 - 7'
wenn ein anderer Wert = '7 - 31'
. Was ist die syntax, die ich verwenden würde, um auseinander brechen Zeichenfolgen in MySQL? In PHP würde ich wahrscheinlich explode(' - ',$string)
und legte Sie zusammen. Gibt es eine Möglichkeit in MySQL?
Hintergrund: ich arbeite mit Sport erzielt und wollen versuchen Spiele, wo die Noten sind die gleichen (und auch am selben Tag) - die aufgeführten Punkte für jedes team ist nach hinten vergleichen, um Ihre Gegner den Datenbank-Datensatz.
Ideal MySQL-Aufruf wäre:
Where opponent1.date = opponent2.date
AND opponent1.score = opponent2.score
(opponent2.score
werden müssten opponent1.score
rückwärts).
InformationsquelleAutor der Frage Bob Cavezza | 2011-05-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
MYSQL hat keine
explode()
like-Funktion eingebaut. Aber Sie können problemlos hinzufügen ähnliche Funktion wie die DB, und dann von php Abfragen. Wird diese Funktion wie folgt Aussehen:Verwendung:
Beispiel oben zurück
apple
.Ich denke, dass es unmöglich sein wird, zu Rückgabe-array in MySQL so müssen Sie angeben, welche auftreten zurück, die explizit in
pos
. Lassen Sie mich wissen, wenn es Ihnen gelingt, es zu benutzen.InformationsquelleAutor der Antwort Arman P.
Ich versuche mit
SUBSTRING_INDEX(string,delimiter,count)
sehen Sie mehr auf mysql.com
http://dev.mysql.com/doc/refman/5.1/en/string-functions.html#function_substring-index
InformationsquelleAutor der Antwort madde74
Können Sie mithilfe der gespeicherten Prozedur, die in dieser Art und Weise..
Beispiel nennen:
InformationsquelleAutor der Antwort Disha Goyal
Zunächst sollten Sie die änderung der Datenbank-Struktur - die Partitur in diesem Fall ist eine Art von zusammengesetzten Wert und sollte gespeichert werden, zwei Spalten, zB.
score_host
score_guest
.MySQL nicht
explode()
entspricht jedoch in diesem Fall könnten SieSUBSTRING()
undLOCATE()
zu cut-off-score von Wirt und Gast.CONVERT()
wird verwendet, um eine Zeichenfolge umzuwandeln"23"
in die Zahl23
.InformationsquelleAutor der Antwort Crozin
Diese Funktion verwenden. Es funktioniert wie ein Charme. ersetzen Sie "|" mit dem char zu explodieren/split und die Werte 1,2,3 usw. basiert auf der Anzahl der Einträge in der Daten-set:
Value_ONE|Value_TWO|Value_THREE.
Ich hoffe, das hilft.
InformationsquelleAutor der Antwort Sergio Rodriguez
Als @arman-p darauf hingewiesen, MYSQL hat kein explode(). Allerdings denke ich, dass die Vorgestellte Lösung in viel komplizierter, als es sein muss. Um einen schnellen check machen, wenn Sie eine durch Komma getrennte Liste saite (e.g, Liste der Tabelle Schlüssel zu suchen) Sie tun:
Davon ausgegangen, dass Sie müssen auch überprüfen, field_3 auf den Tisch zu. Wenn Sie es nicht benötigen, nicht hinzufügen, dass diese Bedingung.
InformationsquelleAutor der Antwort Al Zziwa
verwenden, substring_index, in dem Beispiel unten habe ich eine Tabelle erstellt mit den Spalten-score1 und score2, score1 hat 3-7, score2 7-3 etc wie in der Abbildung gezeigt. Die folgenden Abfrage ist in der Lage, die split mit "-" und in umgekehrter Reihenfolge score2 und zu vergleichen, um score1
InformationsquelleAutor der Antwort philip mudenyo
Stand ich vor demselben Problem heute gelöst und es wie unten, bitte beachten in meinem Fall weiss ich, dass die Anzahl der Elemente in der verketteten Zeichenfolge, damit ich mich erholen kann Ihnen auf diesem Weg:
Variablen @var1 und @var2 hätte die Werte ähnlich wie explode().
InformationsquelleAutor der Antwort DoubleA
wenn explodieren wird zusammen mit foreach zu bauen, eine neue Zeichenfolge, die Sie simulieren kann explodieren durch die Verwendung einer while-Schleife wie diese:
diesem Beispiel gibt eine html-Liste der Teile. (gewünschte variable legths Hinzugefügt werden müssen)
InformationsquelleAutor der Antwort ohjay