MySQL : wie entfernen Sie doppelte oder mehr Leerzeichen aus einem string?
Konnte ich nicht finden, diese Frage für MySQL also hier ist es:
Ich trimmen müssen alle Doppel-oder mehrere Leerzeichen in einem string 1 einzigen Raum.
Zum Beispiel:
"Die Schnell Brown Fox"
sollte sein :
"The Quick Brown Fox"
Die Funktion REPLACE(str, " ", " ") nur entfernt doppelte Leerzeichen, lässt aber die vielfachen Bereiche, wenn es mehr...
Überprüfen Sie diese Antwort stackoverflow.com/questions/986826/... . Der OP will das gleiche tun, aber mit anderen Charakteren.
Warum nicht Sie führen Sie die REPLACE(str," ",""); mehrmals? 🙂
Warum nicht Sie führen Sie die REPLACE(str," ",""); mehrmals? 🙂
InformationsquelleAutor Dylan | 2011-08-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
InformationsquelleAutor user1032559
Den kürzesten und überraschenderweise auch die Schnellste Lösung:
InformationsquelleAutor alkoln
InformationsquelleAutor Артур Курицын
Diese Lösung ist nicht sehr elegant, aber da haben Sie keine andere Wahl:
ja, es tut
SELECT REPLACE( REPLACE( "a[5 spaces]b", " ", " " ), " ", " " )'
Ergebnis:"a b"
es nicht, versuchen
SELECT length(REPLACE( REPLACE( "a b", " ", " " ), " ", " " ));
es zurück 4 statt 3nun, es scheint, du hast Recht, je mehr Schachteln, die Sie tun, desto mehr Räume, die es verarbeiten kann, aber es muss ein Weg sein, um diese Arbeit zu machen, werde ich immer daran denken
haha ... gut gemacht, aber es schlägt fehl, wenn die Räume, die mehr als 6, müssen Sie nur eine WHILE-Schleife, wenn die Räume ist mehr als 2, jedoch mysql nicht wirklich unterstützen WHILE-Schleife, wie bereits angedeutet, definieren Sie Ihre Vorgehensweise Funktion, dies zu tun
InformationsquelleAutor nobody
Ich weiß, diese Frage ist getaggt mit mysql, aber wenn Sie Glück genug, um mit MariaDB können Sie leichter dazu:
InformationsquelleAutor tomconnors
Nach der Suche ich am Ende schreiben Sie eine Funktion, die ich.e
drop-Funktion, wenn vorhanden trim_spaces;
VERWENDUNG:
set @str='------apple--------banana-------------orange---' ;
select trim_spaces( @str,'-')
Ausgabe:
apple-banana-orange-
parameter
trimChar
Funktion könnte von einem beliebigen Zeichen, das wiederholen und das Sie entfernen möchten .Hinweis: es werden erste Zeichen in sich wiederholenden Satz
prost 🙂
InformationsquelleAutor sakhunzai
Wenn Sie mit php....
InformationsquelleAutor
Diese etwas Allgemeine Lösung: aus
http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=56195&whichpage=1
InformationsquelleAutor A. K.
Wenn die Zeichenfolge, die Sie konvertieren möchten, besteht nur aus Buchstaben und mehrere Leerzeichen [A-Za-z ]* dann ist die folgende Funktion funktioniert. Ich fand heraus, ein Muster, wenn solche die Umwandlung von strings in hex. Basierend auf, dass meine Lösung folgt. Nicht so elegant, aber es erfordert keine Verfahren.
InformationsquelleAutor Deepak Jayanth
Folgen meine generische Funktion gemacht für MySQL 5.6. Meine Absicht war es, die Verwendung regulärer Ausdruck zum identifizieren der Bereiche, CR und LF, aber es wird nicht unterstützt von dieser version von mysql. Also, ich hatte eine Schleife durch den string suchen der Zeichen.
InformationsquelleAutor user3188776
Wenn Sie möchten, aktualisieren die vorhandene Spalte, die verfügt über mehrere Räume, in die man dann diese update-Abfrage wird hilfreich sein:
InformationsquelleAutor Imranul Islam