it-swarm.com.de

Die letzten 5 Zeichen der Zeichenfolge werden mit einer MySQL-Abfrage abgerufen

Ich muss die letzten 5 Nummern mit MySQL bekommen.

Meine Werte sind wie YOT-A78514, LOP-C4521 ...

Ich muss nur die letzten fünf Zeichen bekommen. Wie kann ich das bei Abfrage machen?

39
user1253602

Sie können dies mit der Funktion RIGHT (str, len) tun. Gibt die am weitesten rechts stehenden len Zeichen aus der Zeichenfolge zurück str ,

Wie unten:

SELECT RIGHT(columnname,5) as yourvalue FROM tablename
95
user319198

"Richtig" -Funktion ist der Weg, um die Teilzeichenfolge zu verwenden, kann zu einem Problem führen, das nicht so einfach zu bemerken ist:

mysql> select right('hello', 6);
+-------------------+
| right('hello', 6) |
+-------------------+
| hello             |
+-------------------+
1 row in set (0.00 sec)

mysql> select substring('hello', -6);
+------------------------+
| substring('hello', -6) |
+------------------------+
|                        |
+------------------------+
1 row in set (0.00 sec)

Wenn Sie jedoch nicht versuchen, den Anfang der Zeichenfolge zu überschreiten, funktioniert der Teilstring natürlich einwandfrei:

mysql> select substring('hello', -5);
+------------------------+
| substring('hello', -5) |
+------------------------+
| hello                  |
+------------------------+
1 row in set (0.00 sec)
14
Juha Palomäki

Right ist eine gute Wahl, aber Sie können auch substring wie folgt verwenden:

SELECT Substring(columnname,-5) as value FROM table_name
6
Ankit Sharma
SELECT row_id
  FROM column_name
WHERE column_value LIKE '%12345';

Dies gibt die "row_id" zurück, wenn festgestellt wird, dass "12345" das Tailing-Suffix des "column_value" innerhalb des "column_name" ist.

1
sheasie

Und wenn Sie eine dynamische Anzahl von richtigen Zeichen nach einem Zeichen erhalten möchten:

SELECT TRIM( 
    RIGHT(
        database.table.field, 
        (LENGTH(database.table.field) - LOCATE('-',database.table.field)) 
    )
)
FROM database.table;
1
xtrm