Ich habe eine SQL-Spalte, in der die Einträge Zeichenfolgen sind. Ich muss diese Einträge nach dem Trimmen der letzten beiden Zeichen anzeigen, z. B. wenn der Eintrag 199902345
ausgegeben wird 1999023
.
Ich habe versucht, in TRIM zu schauen, aber es sieht so aus, als ob es nur dann möglich ist, zu trimmen, wenn wir wissen, was die letzten beiden Zeichen sind. Aber in meinem Fall weiß ich nicht, was diese letzten beiden Zahlen sind und sie müssen einfach verworfen werden.
Kurz gesagt, welche MySQL-Zeichenfolgenoperation ermöglicht es, die letzten beiden Zeichen einer Zeichenfolge zu kürzen?
Ich muss hinzufügen, dass die Länge der Zeichenfolge nicht festgelegt ist. Es können 9 Zeichen, 11 Zeichen oder was auch immer sein.
SUBSTRING
angemessen. Für den INT-Datentyp war es so einfach wie das Teilen durch 100.Antworten:
Um alle Zeichen außer dem letzten n aus einer Zeichenfolge auszuwählen (oder anders ausgedrückt, entfernen Sie die letzten n Zeichen aus einer Zeichenfolge). Verwenden Sie die
SUBSTRING
undCHAR_LENGTH
Funktionen zusammen:SELECT col , /* ANSI Syntax */ SUBSTRING(col FROM 1 FOR CHAR_LENGTH(col) - 2) AS col_trimmed , /* MySQL Syntax */ SUBSTRING(col, 1, CHAR_LENGTH(col) - 2) AS col_trimmed FROM tbl
Verwenden Sie die folgende
TRIM
Funktion, um einen bestimmten Teilstring vom Ende des Strings zu entfernen :SELECT col , TRIM(TRAILING '.php' FROM col) -- index.php becomes index -- index.txt remains index.txt
quelle
Warum nicht die LEFT-Funktion (Zeichenfolge, Länge) anstelle der Teilzeichenfolge verwenden?
Sie können hier https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_left besuchen , um mehr über MySQL-String-Funktionen zu erfahren.
quelle
, 1
im Funktionsaufruf liegt, denke ich, dass eine ganz neue Funktion nur die Verschmutzung des Namespaces ist. Dies ist insofernRIGHT
etwas nützlicher, als es Sie möglicherweise vor einerLENGTH()
Berechnung bewahrt. Dennoch ist jeder Leistungsgewinn zwischen diesen beiden wahrscheinlich viel geringer als die Kosten für einenLENGTH()
separaten Anruf . Ein oder zwei Addiervorgänge pro Aufruf sind der einzige Unterschied zwischenLEFT
RIGHT
undSUBSTRING
. In SQL Performance 2 sind native Adds nichts.Teilzeichenfolge ().
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html
quelle
Sie können ein
LENGTH(that_string)
Minuszeichen verwenden, dasnumber of characters
Sie in derSUBSTRING()
Auswahl entfernen möchten, oder dieTRIM()
Funktion verwenden.quelle
TRIM()
Arbeit für alle Zeichen anhand des Index zeigen können, anstatt alle bestimmten Zeichentypen zu entfernen, würde mich das interessieren.