我有一个国家列表,这些国家/地区将由起始字母分隔,例如,当您单击“A”时,它将进行 API 调用以返回所有以“A”开头的国家/地区。
但是,有些字母在我们的系统中没有任何国家/地区,这些可能会随着我们更新数据而发生变化。
我想要一个查询,让我知道哪些字母没有以它们开头的任何国家/地区,以便我可以禁用它们。
我可以通过对字母表中的每个字母运行 findOne 查询来做到这一点……但这并不整洁或高效。有没有办法从单个查询中获取数据?
最佳答案
我能够通过在不同的函数中使用子字符串函数来获得所需的结果。
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,
})
关于sql - 使用 Sequelize 选择所有有效的起始字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59147919/