2016-05-09 4 views
1

Ich will MySQL-Abfrage, dieregulärer Ausdruck wählen vorletzter Charakter

EX vorletzter Zeichen in Zeichenfolge abruft: hallo, RAM, SHIVU, RAJEEV

Ausgang: l, A, V, E

habe ich versucht, reguläre Ausdrücke wie folgt

select * from tb_name wo fn REGEXP "a $"

Dies wird letzten Charter als "a" abrufen, aber ich möchte OUTPUT wie oben.

+0

'hello',' RAM', 'SHIVU', ... sind der Wert' fn' Spalte? * (getrennte Zeilen) * Oder alles in einer Zeile als String? – Shafizadeh

+0

ja, sie sind Wert für Fn. –

Antwort

2

Ich bin nicht sicher, was Sie zu tun versuchen. Und basierend auf Ihrer Ausgabe muss ich sagen, dass Sie diese Regex nicht auf die WHERE Klausel schreiben sollten. Eigentlich brauchst du keine Regex. Sie SUBSTR() Funktion verwenden können, um erwartete Ergebnis zu erzielen:

/* tb_name 
+--------+-----------------+ 
| fn | other column(s) | 
+--------+-----------------+ 
| hello |  ...  | 
| RAM |  ...  | 
| SHIVU |  ...  | 
| RAJEEV |  ...  | 
+--------+-----------------+ 
*/ 

mysql> SELECT SUBSTR(fn, -2, 1) fn FROM tb_name; 

/* Output: 
+----+-----------------+ 
| fn | other column(s) | 
+----+-----------------+ 
| l |  ...  | 
| A |  ...  | 
| V |  ...  | 
| E |  ...  | 
+----+-----------------+ 
+1

ja ich habe danke –

+0

@ShivakumarBellubbi Gern geschehen ..! – Shafizadeh

1

Sie können dies versuchen:

select left(right(fn, 2),1) from tb_name