mysql跨表截取字符串过滤html替换

使用截取sql为:

UPDATE table1,table2 SET table1.description=left(trim(strip_tags(table2.content),180))  where table1.id= table2.id

用到以下函数和自定义strip_tags函数

1、从左开始截取字符串
left(str, length)
说明:left(被截取字段,截取长度)
例:select left(content,200) as abstract from my_content_t
2、从右开始截取字符串
right(str, length)
说明:right(被截取字段,截取长度)
例:select right(content,200) as abstract from my_content_t
3、截取字符串
substring(str, pos)
substring(str, pos, length)
4、trim//左右去空格
5、除去换行符
UPDATE table1 SET description=REPLACE(description,CHAR(13),”);
UPDATE table1 SET description=REPLACE(description,CHAR(10),”);
6、自定义函数用个新版的phpmyadmin添加就可以了,免去用命令行的麻烦。

选择某个数据库然后,点上面的程序-> 添加程序,函数名strip_tags,变量$str,类型和返回值都是text,定义就复制下面红色部分。
CREATE FUNCTION `strip_tags`($str text) RETURNS text
BEGIN
 DECLARE $start,$end INT DEFAULT 1;
 LOOP
  SET $start = LOCATE(“<“, $str, $start);
  IF (!$start) THEN RETURN $str; END IF;
  SET $end = LOCATE(“>”, $str, $start);
  IF (!$end) THEN SET $end = $start; END IF;
  SET $str = INSERT($str, $start, $end – $start + 1, “”);
  END LOOP;
END;

此条目发表在服务器分类目录,贴了标签。将固定链接加入收藏夹。

发表回复