繁体   English   中英

排序查询字符串前缀/以

[英]Sequelize query string prefix / starts with

我正在构建一个自动填充功能,该功能接受字符串输入并返回字符串建议列表。

Sequelize的iLike:query返回出现查询的字符串的每个字符串。 我希望使用查询作为前缀的字符串。 例如,当query='sh' ,结果应返回以sh开头的字符串,而不是在字符串中的任何地方都包含sh

从数据库接收数据后,这相对简单,但是我想知道在查询数据库时是否有一种方法可以通过序列化来实现? 如果可以,怎么办?

DB的大小将在10,000到100,000个字符串之间,且不超过几个单词(确切地说是公司名称)。

可选问题:数据库通常比通用代码具有更好的性能,在这种情况下,甚至应该有明显的区别吗? 或者我应该只是通过Vanilla JS从数据库中收集所有数据并对其应用一些其他过滤器。

let suggestions = yield db.Company.findAll({
  limit: 7,
    where: {
      company_name: {
        $iLike: '%'+this.data.query
      }
    }
 })

好像这样超级容易! '%'作用类似于正则表达式中的* 因此, query + '%'返回以query为前缀的所有结果。

let suggestions = yield db.Company.findAll({
    limit: 5,
    where: { $or: [
      { stock_ticker: { $ilike: query + '%' } },
      { company_name: { $ilike: query + '%' } }
    ]},
    order: '"volume" DESC'
  })

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM