表:CREATE TABLE `avar` (
  `id` int(11) DEFAULT NULL,
  `picPath` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8
数据:insert  into `avar`(`id`,`picPath`) 
values (1,'生物介绍\r\n<br/>主页: www.awd.com \r\n<br/>工作地:上海\r\n<br/> \r\n<br/>谢绝来电来访。\r\n<br/> \r\n<br/>上海载体研发中心\r\n<br/>\r\n<br/>\r\n<br/>\r\n<br/><br/>'),
(2,'生物介绍\r\n<br/>主页: www.awd.com \r\n<br/>工作地:上海\r\n<br/> \r\n<br/>参加规范化培训,参加规范化培训。\r\n<br/> \r\n<br/>研发中心\r\n<br/>\r\n<br/>');
要求:更新picPath字段,让这个字段末尾的<br/>去掉。
如:
<br/>上海载体研发中心
<br/>
<br/>
<br/>
<br/><br/>
更新成:
<br/>上海载体研发中心
<br/>
<br/>
<br/>
<br/><br/>

中文字后面(末尾)的<br/> 后删除。第2条也是一样。删除末尾的<br/>。能力有限,想半天没有想到如何处理,哪位高人帮下忙。

解决方案 »

  1.   

    貌似没有现成的函数  自己写个函数吧 循环判断最后几个字符是不是<br/> 是就删除
      

  2.   

    一次性的话,就select into到文件,然后用支持正则的文本编辑器之类工具,替换掉br,然后load data, replace掉原有数据
      

  3.   

    mysql> select * from avar;
    +------+-----------------------------------
    -------------------------------------------
    | id   | picPath+------+-----------------------------------
    -------------------------------------------
    |    1 | 生物介绍
    <br/>主页: www.awd.com
    <br/>工作地:上海
    <br/>
    <br/>谢绝来电来访。
    <br/>
    <br/>上海载体研发中心
    <br/>
    <br/>
    <br/>
    <br/><br/> |
    |    2 | 生物介绍
    <br/>主页: www.awd.com
    <br/>工作地:上海
    <br/>
    <br/>参加规范化培训,参加规范化培训。
    <br/>
    <br/>研发中心
    <br/>
    <br/>          |
    +------+-----------------------------------
    -------------------------------------------
    2 rows in set (0.13 sec)mysql> update avar set picPath= trim('<br/>\r\n' FROM trim('<br/>' FROM picPath));
    Query OK, 2 rows affected (0.00 sec)
    Rows matched: 2  Changed: 2  Warnings: 0mysql> select * from avar;
    +------+------------------------------------------------------------------------
    -------------------------------------------------------+
    | id   | picPath
                                                           |
    +------+------------------------------------------------------------------------
    -------------------------------------------------------+
    |    1 | 生物介绍
    <br/>主页: www.awd.com
    <br/>工作地:上海
    <br/>
    <br/>谢绝来电来访。
    <br/>
    <br/>上海载体研发中心
               |
    |    2 | 生物介绍
    <br/>主页: www.awd.com
    <br/>工作地:上海
    <br/>
    <br/>参加规范化培训,参加规范化培训。
    <br/>
    <br/>研发中心
     |
    +------+------------------------------------------------------------------------
    -------------------------------------------------------+
    2 rows in set (0.00 sec)mysql>
      

  4.   

    DROP FUNCTION IF EXISTS update_tail;
    DELIMITER $$
    CREATE FUNCTION update_tail(string_text text  character set utf8 ) RETURNS text character set utf8
    BEGIN
     DECLARE t1 int DEFAULT 0;
     DECLARE t2 int DEFAULT 0;
     DECLARE bc int default 0;
       WHILE bc < CHAR_LENGTH(string_text) DO
          IF (ASCII(MID(string_text,bc,1)) > 128 AND t1=0) THEN
      SET t1=bc;
          END IF;
          IF  ASCII(MID(string_text,bc,1)) > 128 THEN
      SET t2=bc;
          END IF;
         SET bc=bc+1;
        END WHILE;
      RETURN MID(string_text,t1,t2-t1+1);
    END $$
    DELIMITER ;