使用Sequelize选择所有有效的起始字母

问题描述 投票:0回答:1

我有一个国家/地区列表,将以首字母分隔,因此,例如,当您单击'A'时,它将进行API调用以返回以'A'开头的所有国家/地区。

但是,有些字母在我们的系统中没有任何国家/地区,随着我们更新数据,这些字母可能会更改。

我想查询一下,让我知道哪些字母没有任何以它们开头的国家,以便我可以禁用它们。

我可以通过对字母表中的每个单个字母运行findOne查询来实现,但这不是整洁或高效的。有没有一种方法可以从单个查询中获取数据?

sql postgresql sequelize.js
1个回答
0
投票

我能够通过在不同的函数中使用子字符串函数来获得所需的结果。

 const result = await Countries.findAll({
    attributes: [
      [
        sequelize.fn(
          'DISTINCT',
          sequelize.fn('substring', sequelize.col('countryName'), 1, 1),
        ),
        'letter',
      ],
    ],
    group: [sequelize.fn('substring', sequelize.col('countryName'), 1, 1)],
    raw: true,
  })
© www.soinside.com 2019 - 2024. All rights reserved.