it-swarm.com.de

Entferne die letzten zwei Zeichen einer Spalte in MySQL

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. Wenn der Eintrag 199902345 ist, sollte er 1999023 ausgeben.

Ich habe versucht, TRIM zu untersuchen, aber es sieht so aus, als ob es nur dann sinnvoll ist, zu trimmen, wenn wir die letzten beiden Zeichen kennen. Aber in meinem Fall weiß ich nicht, was diese letzten beiden Zahlen sind und sie müssen einfach weggeworfen werden.

Kurz gesagt, welche MySQL-String-Operation ermöglicht es, die letzten beiden Zeichen eines Strings 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.

63
Lucky Murari

Um alle Zeichen außer dem letzten n aus einer Zeichenfolge auszuwählen (oder anders ausgedrückt, entfernen Sie das letzte n Zeichen aus einem String); benutze die SUBSTRING und CHAR_LENGTH funktioniert 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 Funktion TRIM , um eine bestimmte Teilzeichenfolge vom Ende der Zeichenfolge zu entfernen:

SELECT col
     , TRIM(TRAILING '.php' FROM col)
-- index.php becomes index
-- index.txt remains index.txt
104
Salman A

Warum nicht LEFT (string, length) anstelle von substring benutzen?.

LEFT(col,length(col)-2) 

sie können hier https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_left besuchen, um mehr über die Funktionen von MySQL-Strings zu erfahren.

54
Larz
4

Sie können ein LENGTH(that_string) minus dem number of characters, Den Sie entfernen möchten, in der SUBSTRING()-Auswahl verwenden oder die TRIM() -Funktion verwenden.

0
Richard