帝国CMS中批量设置正文第一张图片为标题图片缩略图
2025-01-08
利用 SQL 与正则表达式(适合有编程基础)。
操作前,务必先对帝国 CMS 所使用的数据库进行完整备份,避免数据丢失
借助正则表达式从正文中提取第一张图片的 URL,不同数据库对于正则表达式支持略有差异,
新闻正文字段作为主表的情况用以下语句:
update phome_ecms_news set titlepic =concat(replace(SUBSTRING_INDEX(SUBSTRING_INDEX(newstext, 'src=', -1),'.gif',1),'',''),'.gif') where newstext like '%.gif%' and titlepic=''; update phome_ecms_news set titlepic =concat(replace(SUBSTRING_INDEX(SUBSTRING_INDEX(newstext, 'src=', -1),'.jpg',1),'',''),'.gif') where newstext like '%.jpg%' and titlepic=''; update phome_ecms_news set titlepic =concat(replace(SUBSTRING_INDEX(SUBSTRING_INDEX(newstext, 'src=', -1),'.png',1),'',''),'.png') where newstext like '%.png%' and titlepic='';
新闻正文字段作为副表的情况用以下语句:
update [!db.pre!]ecms_news_data_1 a, [!db.pre!]ecms_news b set b.titlepic=concat(replace(SUBSTRING_INDEX(SUBSTRING_INDEX(a.newstext, 'src=', -1),'.gif',1),'',''),'.gif') where a.newstext like '%.gif%' and b.titlepic='' and a.id=b.id; update [!db.pre!]ecms_news_data_1 a, [!db.pre!]ecms_news b set b.titlepic=concat(replace(SUBSTRING_INDEX(SUBSTRING_INDEX(a.newstext, 'src=', -1),'.jpg',1),'',''),'.jpg') where a.newstext like '%.jpg%' and b.titlepic='' and a.id=b.id; update [!db.pre!]ecms_news_data_1 a, [!db.pre!]ecms_news b set b.titlepic=concat(replace(SUBSTRING_INDEX(SUBSTRING_INDEX(a.newstext, 'src=', -1),'.png',1),'',''),'.png') where a.newstext like '%.png%' and b.titlepic='' and a.id=b.id;
声明:本文来自用户分享和网络收集,仅供学习与参考,测试请备份。