2014-04-11 3 views
2

У меня есть столбец в моей таблице, как это,разделить символы и цифры в MySQL

students 
-------- 
abc23 
def1 
xyz567 
...... 

и так далее. Теперь мне нужно вывод, как только имена выход нужно, как

students 
-------- 
abc 
def 
xyz 

Как я могу получить это в MySQL. Спасибо заранее.

+0

попробовать использовать SUBSTR (студент, 1,3) –

+0

извините, я забыл упомянуть. длина символов различна. я забыл уведомить об этом. может быть 5 или более – rk3265423

+0

Каков формат ценности? – dikesh

ответ

2

Вы можете сделать это с string functions ансом некоторых CAST() магии:

SELECT 
    SUBSTR(
    name, 
    1, 
    CHAR_LENGTH(@name) - CHAR_LENGTH(
     IF(
     @c:=CAST(REVERSE(name) AS UNSIGNED), 
     @c, 
     '' 
    ) 
    ) 
) 
FROM 
    students 

, например:

 
SET @name:='abc12345'; 

mysql> SELECT SUBSTR(@name, 1, CHAR_LENGTH(@name) - CHAR_LENGTH(IF(@c:=CAST(REVERSE(@name) AS UNSIGNED), @c, ''))) AS name; 
+------+ 
| name | 
+------+ 
| abc | 
+------+ 
+0

отлично ... спасибо. Работает. – rk3265423

+0

Если значение столбца, подобное этому, означает «приветствовать» числовое значение, оно возвращает только «welcom». он обрезал последний символ. – rk3265423

+0

Ну, это не проблема. Я добавил 'IF' check –

Смежные вопросы