MYSQL 截取一个数据表中,某一个字段(fulltext) 的前三百个字符,放到该表下另一个字段(introtxt)里.
求实现这个效果的命令

解决方案 »

  1.   

    update 表 set introtxt=left(`fulltext`,300);
      

  2.   

    UPDATE TB
    SET introtxt=SUBSTR(fulltext,1,300)
    WHERE LENGTH(fulltext)>=300
    长度小于300的不处理
      

  3.   

    UPDATE TB
    SET introtxt=CASE 
                   WHEN LENGTH(fulltext)>=300 
                     THEN SUBSTR(fulltext,1,300)
                   ELSE fulltext
                 END
    fulltext长度小于300时,就取fulltext的值
      

  4.   

    从楼主的需求看来,估计搂主的列不是char类型的,应该是varchar或text类型的,所以,直接这样就可以:
      

  5.   


    仅从这个说明上来看。一楼的 update 表 set introtxt=left(`fulltext`,300); 应该就可以了。
      

  6.   

    update 表 set introtxt=left(`fulltext`,300);
    是要考虑字段长度 和空值NULL
      

  7.   

    update tb set introtxt=left(fulltext,300)
      

  8.   

    先谢谢楼上各位了,小弟这个问题碰到了一个新情况.
    我现在发现我的表jos_content
    中的introtext和fulltext两个字段,有部分数据是均有字符的(文本格式)
    有部分则是一个字段有,一个字段没有,不确定是哪个字段有,那个字段没有
    所以我的需求就有变化了.我的最终目标是要introtext这个字段里只有三百个字符,其他的字符都放到fulltext字段下因为 introtext和fulltext 这两个字段合起来刚好的我的网站里文章的内容.
    (joomla的程序)还望各位再帮个忙
      

  9.   

    update jos_content
    set introtext=left(concat(introtext,fulltext),300),
     fulltext=mid(concat(introtext,fulltext),301);
      

  10.   

    update jos_content 
    set introtext=left(concat(ifnull(introtext,''),ifnull(fulltext,'')),300), 
    fulltext=substring(concat(ifnull(introtext,''),ifnull(fulltext,'')),301);
      

  11.   

     楼上两位,这样在一个数据库里同时操作,会不会引起数据紊乱?
    introtext先取了自己的三个百字符,如不足又取了fulltext 的部分字符
    随后, fulltext再取 introtext 和fulltext的数据时,还是introtext和fulltext未变更之前的数据吗