具体是这样
MySQL中假如某一表名是: post 字段名是: message问题1:要删除message中的所有记录末尾向前直到遇到连续5个回车之间的内容,或者说是连续5个回车之后所有的内容,这个语句该怎么写呢?问题2:另外如果想删除message中某字符比如五个#####号之后所有的内容,语句如何写?

解决方案 »

  1.   

    SUBSTRING_INDEX
      

  2.   

    mysql> create table post (message varchar(100));
    Query OK, 0 rows affected (0.11 sec)mysql> insert into post values
        -> ('1231af 3qerq r\n\n\n\n\nadfwer'),
        -> ('1231af 3qerq r#######nadfwer');
    Query OK, 2 rows affected (0.11 sec)
    Records: 2  Duplicates: 0  Warnings: 0mysql> select SUBSTRING_INDEX(message, '\n\n\n\n\n', -1) from post;
    +--------------------------------------------+
    | SUBSTRING_INDEX(message, '\n\n\n\n\n', -1) |
    +--------------------------------------------+
    | adfwer                                     |
    | 1231af 3qerq r#######nadfwer               |
    +--------------------------------------------+
    2 rows in set (0.09 sec)mysql> select SUBSTRING_INDEX(message, '#######', 1) from post;
    +----------------------------------------+
    | SUBSTRING_INDEX(message, '#######', 1) |
    +----------------------------------------+
    | 1231af 3qerq r
    adfwer              |
    | 1231af 3qerq r                         |
    +----------------------------------------+
    2 rows in set (0.00 sec)mysql>
      

  3.   

    恩,谢谢楼上,这个办法可以解决问题2我试了update post set message=SUBSTRING_INDEX(message,'#####',1);可以搞定但是连续五个回车好像还是有点问题
      

  4.   

    SUBSTRING_INDEX(message, '\n\n\n\n\n', -1)  这个不可以吗?