1-...ererer
1sdf-666erer
232-,,.fff
6c-,,,,erer
.....
通过sql需要得到如下
ererer
erer
fff
erer
取各个字段值里以 字母开头后的值。
如上 (按照道理可以用用正则表达式拉求)

解决方案 »

  1.   

    比如
    1-...ererer  --- 这里是ererer
    1sdf-666erer ---- 这里是sdf-666erer
    232-,,.fff -----这里是fff
    6c-,,,,erer ---这里是erer数字或者其他符号都不算
      

  2.   

    循环,取每一个字段,判断ASC码是否介于97-122之间(小写),如在之间,记录数据,取数,退出循环。
      

  3.   

    MYSQL的中的正则式只支持匹配,目前还不支持提取字符串的功能。如果一定要在数据库中实现,则你需要用存储过程来实现了。
      

  4.   

    感谢楼上分析
    如果这样我在java里做了 不要靠sql做 
      

  5.   

    mysql> CREATE FUNCTION liyihongcug(s VARCHAR(1000))
        -> RETURNS VARCHAR(1000) DETERMINISTIC
        -> BEGIN
        ->  DECLARE a CHAR;
        ->  DECLARE b,c INT;
        ->
        ->  set b=length(s);
        ->  WHILE substr(s,b,1) regexp '[A-Za-z]' AND b>0 DO
        ->          set b=b-1;
        ->  END WHILE;
        ->  RETURN substr(s,b+1);
        -> END//
    Query OK, 0 rows affected (0.00 sec)mysql> select liyihongcug('1-...ererer')//
    +----------------------------+
    | liyihongcug('1-...ererer') |
    +----------------------------+
    | ererer                     |
    +----------------------------+
    1 row in set (0.06 sec)mysql> select liyihongcug('1sdf-666erer')//
    +-----------------------------+
    | liyihongcug('1sdf-666erer') |
    +-----------------------------+
    | erer                        |
    +-----------------------------+
    1 row in set (0.00 sec)mysql> select liyihongcug('232-,,.fff')//
    +---------------------------+
    | liyihongcug('232-,,.fff') |
    +---------------------------+
    | fff                       |
    +---------------------------+
    1 row in set (0.00 sec)mysql> select liyihongcug('6c-,,,,erer')//
    +--------------------------------+
    | liyihongcug('6c-,,,,erer') |
    +--------------------------------+
    | erer                           |
    +--------------------------------+
    1 row in set (0.00 sec)mysql>
      

  6.   

    感谢楼上拓宽思路这是相问  mysql的函数不支持正则表达式??
      

  7.   

    感谢楼上
    最后决定用java代码作