通过SQSL语句批量提取新闻内容字段newstext的第一张图片为标题图片,对于文章模型的内容存文本的情况下无效。
执行步骤:系统 - 数据库备份与恢复 - 执行SQL语句 中执行以下语句,注意请一定要提前备份以防万一,因为字段存的表的不同所以区分执行语句,下面以新闻模型为例。
新闻正文字段作为主表的情况用以下语句:
1 2 3 | update[!db. pre !]ecms_newssettitlepic=concat(replace(SUBSTRING_INDEX(SUBSTRING_INDEX(newstext, 'src=' , -1 ), '.gif' , 1 ), '"' , '' ), '.gif' )wherenewstextlike '%.gif%' andtitlepic= '' ; update[!db. pre !]ecms_newssettitlepic=concat(replace(SUBSTRING_INDEX(SUBSTRING_INDEX(newstext, 'src=' , -1 ), '.jpg' , 1 ), '"' , '' ), '.gif' )wherenewstextlike '%.jpg%' andtitlepic= '' ; update[!db. pre !]ecms_newssettitlepic=concat(replace(SUBSTRING_INDEX(SUBSTRING_INDEX(newstext, 'src=' , -1 ), '.png' , 1 ), '"' , '' ), '.png' )wherenewstextlike '%.png%' andtitlepic= '' ; |
新闻正文字段作为副表的情况用以下语句:
1 2 3 | update[!db. pre !]ecms_news_data_ 1 a,[!db. pre !]ecms_newsbsetb.titlepic=concat(replace(SUBSTRING_INDEX(SUBSTRING_INDEX(a.newstext, 'src=' , -1 ), '.gif' , 1 ), '"' , '' ), '.gif' )wherea.newstextlike '%.gif%' andb.titlepic= '' anda.id=b.id; update[!db. pre !]ecms_news_data_ 1 a,[!db. pre !]ecms_newsbsetb.titlepic=concat(replace(SUBSTRING_INDEX(SUBSTRING_INDEX(a.newstext, 'src=' , -1 ), '.jpg' , 1 ), '"' , '' ), '.jpg' )wherea.newstextlike '%.jpg%' andb.titlepic= '' anda.id=b.id; update[!db. pre !]ecms_news_data_ 1 a,[!db. pre !]ecms_newsbsetb.titlepic=concat(replace(SUBSTRING_INDEX(SUBSTRING_INDEX(a.newstext, 'src=' , -1 ), '.png' , 1 ), '"' , '' ), '.png' )wherea.newstextlike '%.png%' andb.titlepic= '' anda.id=b.id; |
注意的是有标题图片了的也会被提取第一张图片,执行无差别。
以上就是帝国CMS批量提取新闻内容的第一张图片为标题图片的SQL语句。
声明:有的资源均来自网络转载,版权归原作者所有,如有侵犯到您的权益 请联系邮箱:312334557@qq.com 我们将配合处理!
原文地址:《帝国CMS批量提取内容的第一张图片为标题图片的SQL语句是什么?》发布于2022-06-03 21:43:53