如何按在 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 中找到的关键字数量排序的主要内容,如果未能解决你的问题,请参考以下文章

测试开发字节跳动(二面),我被面试官按在地上摩擦!

测试开发字节跳动(二面),我被面试官按在地上摩擦!

面试京东T5,被按在地上摩擦,鬼知道我经历了什么?

面试京东T5,被按在地上摩擦,鬼知道我经历了什么?

通过长按在 Android WebView 中启动缩放

按在 Pandas 中开始和结束的日期范围扩展行