在MySQL中拆分字符和数字

时间:2014-04-11 06:50:41

标签: mysql

我的表中有一个列,像这样,

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

等等。现在我需要像名字一样的输出 需要输出为

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

我怎样才能在mysql中得到它。谢谢你。

1 个答案:

答案 0 :(得分: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  |
+------+