收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 一个比较有意思的难题?关于多条件查询![

morganadapter 2009-11-18 02:03:01
有一个表结构!

文章标题 文章内容
============ ==================
标题一 相关内容
标题二 相关内容
... ...
============ ==================

写一条查询语句,根据给定的关键字进行筛选,选出文章标题或内容中包含关键字的记录。关键是要对于查询结果进行排序,如果关键字出现在文章标题中排在前面,如果关键字出现在文章内容中则排在后面。如果基础现在标题中又出现在内容中出现在最后。

哥们新手,没什么分,各位高手见谅!
...全文
56 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
小灰狼W 2009-11-18
  • 打赏
  • 举报
回复
没看清楚要求
order by case when 标题 like '%XXX%' and 内容 like '%XXX%' then 3
when 标题 like '%XXX%' then 1
else 2 end;

性能应该更好一些
shiyiwan 2009-11-18
  • 打赏
  • 举报
回复
#4, #5都可以,

只考虑实现的情况下。
xiao_jun_0820 2009-11-18
  • 打赏
  • 举报
回复
select * from article a where a.title like '%企鹅%' and not a.content like '%企鹅%'
union all
select * from article a where not a.title like '%企鹅%' and a.content like '%企鹅%'
union all
select * from article a where a.title like '%企鹅%' and a.content like '%企鹅%'
liusong_china 2009-11-18
  • 打赏
  • 举报
回复
SELECT 文章标题,文章内容 FROM tb 
WHERE 文章标题 LIKE '%关键字%' OR 文章内容 LIKE '%关键字%'
ORDER BY CASE WHEN 文章标题 LIKE '%关键字%' AND 文章内容 NOT LIKE '%关键字%' THEN 1
WHEN 文章标题 NOT LIKE '%关键字%' AND 文章内容 LIKE '%关键字%' THEN 2
WHEN 文章标题 LIKE '%关键字%' AND 文章内容 LIKE '%关键字%' THEN 3
ELSE 4 END;
小灰狼W 2009-11-18
  • 打赏
  • 举报
回复
楼主帖子名字怎么起得这么奇怪...
小灰狼W 2009-11-18
  • 打赏
  • 举报
回复
select * from table1
where instr(标题,'xxx')>0
or instr(内容,'xxx')>0
order by case when instr(标题,'xxx')>0 then 1 else 2 end
crazylaa 2009-11-18
  • 打赏
  • 举报
回复
union all?要用like,又要全表扫描,,效率可能不咋的。。。

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧