sql查询结果按列排序

笑莫问 2012-12-19 04:05:57
有这样的需求,拿查询书籍做个例子,我通过关键字查询出相关书籍,可以根据书籍的作者、出版社、摘要、描述等等信息来进行匹配,那么sql就是:
select * from 书籍表 where 作者 like '%xxx%' or 出版社 like '%xxx%'...
这样查询的书籍结果肯定没问题,但是是没有顺序的。
现在我要的是查询结果有优先顺序,比如优先按作者匹配、其次是出版社、接着描述。。。请问有没什么好的方法通过写sql实现?
PS:使用的mysql数据库,最好不要有union、union all、、、等这些HQL不支持的查询语句。
...全文
332 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sky_08_06_02 2012-12-20
  • 打赏
  • 举报
回复
这个除了union,我也想知道有什么其他方式
suciver 2012-12-19
  • 打赏
  • 举报
回复
这种这么特殊的需求。直接使用SQL就行了hibernate一样支持createSQLQuery(sql);
笑莫问 2012-12-19
  • 打赏
  • 举报
回复
PS: select * from 书籍表 where 作者 like '%xxx%' or 出版社 like '%xxx%'... order by 作者 like '%xxx%' desc, 出版社 like '%xxx%' desc,...这样的sql语句在mysql是没问题的,可以执行HQL不行,因为HQL的order by字句不支持条件、子查询、、、
笑莫问 2012-12-19
  • 打赏
  • 举报
回复
引用 1 楼 wanglin1037 的回复:
order by case when 条件 then 1 else o end lz试试这个
case when ... HQL不支持
Jordan37 2012-12-19
  • 打赏
  • 举报
回复
order by case when 条件 then 1 else o end lz试试这个

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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