如何按在 sql/namedQuery 中找到的关键字数量排序
Posted
技术标签:
【中文标题】如何按在 sql/namedQuery 中找到的关键字数量排序【英文标题】:How to order by number of keywords found in sql/namedQuery 【发布时间】:2011-02-23 12:40:54 【问题描述】:我创建了一个带有like 和 a or 的查询
select * from xxx where title like ('%bon%') or title like ('%test%')
我收到一个结果: bonjour je 测试 你好 测试卓悦 测试
我想按标题中的字数排序: bonjour je 测试 测试卓悦 你好 测试
我将 Grails 与 namedQueries 一起使用。
有可能吗?
谢谢
【问题讨论】:
【参考方案1】:您可以使用这个小技巧来计算空格字符的数量并按其排序。
select * from xxx where title like ('%bon%') or title like ('%test%')
order by (LEN(title) - LEN(REPLACE(title, ' ', '')))
【讨论】:
我相信,而不是order by (LEN(title) - LEN(REPLACE(REPLACE(title, 'test', ''), 'bon', '')))
- 这将按搜索词的数量(好的,搜索词中的字母)排序。但它效率低下,占用大量 CPU 资源并且不使用索引。
非常感谢。我将尝试在 Grails 中使用 Search Plugin 来索引文本以上是关于如何按在 sql/namedQuery 中找到的关键字数量排序的主要内容,如果未能解决你的问题,请参考以下文章