update jos_content set introtext=left(concat(introtext,fulltext),300), fulltext=mid(concat(introtext,fulltext),301);
update jos_content set introtext=left(concat(ifnull(introtext,''),ifnull(fulltext,'')),300), fulltext=substring(concat(ifnull(introtext,''),ifnull(fulltext,'')),301);
SET introtxt=SUBSTR(fulltext,1,300)
WHERE LENGTH(fulltext)>=300
长度小于300的不处理
SET introtxt=CASE
WHEN LENGTH(fulltext)>=300
THEN SUBSTR(fulltext,1,300)
ELSE fulltext
END
fulltext长度小于300时,就取fulltext的值
仅从这个说明上来看。一楼的 update 表 set introtxt=left(`fulltext`,300); 应该就可以了。
是要考虑字段长度 和空值NULL
我现在发现我的表jos_content
中的introtext和fulltext两个字段,有部分数据是均有字符的(文本格式)
有部分则是一个字段有,一个字段没有,不确定是哪个字段有,那个字段没有
所以我的需求就有变化了.我的最终目标是要introtext这个字段里只有三百个字符,其他的字符都放到fulltext字段下因为 introtext和fulltext 这两个字段合起来刚好的我的网站里文章的内容.
(joomla的程序)还望各位再帮个忙
set introtext=left(concat(introtext,fulltext),300),
fulltext=mid(concat(introtext,fulltext),301);
set introtext=left(concat(ifnull(introtext,''),ifnull(fulltext,'')),300),
fulltext=substring(concat(ifnull(introtext,''),ifnull(fulltext,'')),301);
introtext先取了自己的三个百字符,如不足又取了fulltext 的部分字符
随后, fulltext再取 introtext 和fulltext的数据时,还是introtext和fulltext未变更之前的数据吗