日期:2014-05-19  浏览次数:20693 次

sql查询结果按列排序
有这样的需求,拿查询书籍做个例子,我通过关键字查询出相关书籍,可以根据书籍的作者、出版社、摘要、描述等等信息来进行匹配,那么sql就是:
select * from 书籍表 where 作者 like '%xxx%' or 出版社 like '%xxx%'...
这样查询的书籍结果肯定没问题,但是是没有顺序的。
现在我要的是查询结果有优先顺序,比如优先按作者匹配、其次是出版社、接着描述。。。请问有没什么好的方法通过写sql实现?
PS:使用的mysql数据库,最好不要有union、union all、、、等这些HQL不支持的查询语句。
------解决方案--------------------
order by case when 条件 then 1 else o end 
lz试试这个
------解决方案--------------------
这种这么特殊的需求。直接使用SQL就行了hibernate一样支持createSQLQuery(sql);
------解决方案--------------------
这个除了union,我也想知道有什么其他方式