您现在的位置是:首页 > CMS帝国CMS

帝国CMS之指定栏目搜索

阿龙2022-11-24【帝国CMS】人已围观

//方法一
select 
title ,REPLACE ( p.newstext, '\\\\', '' ) AS newstext 
from
( SELECT
 id,title 
FROM
 phome_ecms_news 
WHERE
 classid in (30)
 AND title LIKE '%为什么%' 
UNION ALL
 SELECT
 id,title 
FROM
 phome_ecms_news 
WHERE
 classid in (31)
 AND title LIKE '%为什么%' 
UNION ALL
 SELECT
 id,title 
FROM
 phome_ecms_news 
WHERE
 classid in (32)
 AND title LIKE '%为什么%') t
LEFT JOIN phome_ecms_news_data_1 p ON t.id = p.id 


//方法二
select 
title ,REPLACE ( p.newstext, '\\\\', '' ) AS newstext 
from
( SELECT
 id,title 
FROM
 phome_ecms_news 
WHERE
 classid in (30,31,32)
 AND title LIKE '%为什么%' 
) t
LEFT JOIN phome_ecms_news_data_1 p ON t.id = p.id 

有个意思的地方,在帝国CMS中“REPLACE ( p.newstext, '\\\\', '' )”其时我只想替“\”但是不解的是为什么这里要用4个,用2个SQL就报错,不太理解!!这个地方用这个替换,原因也是因为我拿到的内容中的Src或href中开头都是"\"转义的,所以取出来时一次性全换了。
表中用UNION ALL方法拼接四个栏目,在指定的四个栏目中模糊查找“...为什么 ...”开头的标题,最后左连一个副表也是为了拿到内容。这个方法也是自己写的一个搜索,没有用帝国搜索功能,原因也是因为帝国搜索的“程序代码”那块勾上后,没法执行PHP代码,而面板支持的newstext字段只接调用又显示不出来,也不知是何原故,不过最终还是用自己的方法来解决了这个搜索问题。

Tags:UNION ALL

很赞哦! ()