【发布时间】:2020-11-07 17:46:45
【问题描述】:
我有一个带有字符串列“grades”的表,其中包括以下 ['uni', '9','10',11','12']. 我无法将此列更改为 Int。
我有以下排序代码:
Course.findAll({
order: [
['grade', 'ASC']
],
...
但按等级排序会给我以下顺序:
['10','11', '12', '9', 'uni' ]
显然我不希望它按照这个顺序。我查看了 Sequelize 文档,他们似乎有一种方法可以提交自定义函数以进行排序,但我没有示例说明它的外观:
// Will order by otherfunction(`col1`, 12, 'lalala') DESC
[sequelize.fn('otherfunction', sequelize.col('col1'), 12, 'lalala'), 'DESC'],
(https://sequelize.org/master/manual/model-querying-basics.html#ordering-and-grouping)
有人知道这样做的实现吗?
【问题讨论】:
-
"我无法将此列更改为 Int。"为什么?它实际上意味着什么?
-
在排序函数中尝试将字符串转换为数字
-
@JanStránský 我不能以任何方式修改表格,我必须按原样使用它。
-
@JanStránský 我想知道排序函数是什么样子的,它是一个简单的 sort(a, b) 返回 [-1,0,1] 吗?
-
我没有续集的经验,抱歉,只是头脑风暴。你能用整数创建另一个列吗?
标签: javascript node.js sequelize.js