有沒有一種方法可以使用sequelize.js從表中選擇不同的行? 我查看了文檔,但「finder methods」未指定完成此任務的方法。Sequelize選擇不同的行
2
A
回答
0
這是不可能自動,但如果你不介意創建你自己的SQL,你可以這樣做:
sequelize.query('sql goes here', null, { raw: plain }).success(function(data){
console.log(data)
})
玩得開心:)
UPDATE
- Sequelize現在使用
then
而不是success
作爲promise函數。 Sequelize.query
已重構只使用paramterssql
和options
raw
接受true/false
但沒有plain
的價值。
因此,根據新的版本,代碼應該是這樣的:
sequelize.query('sql goes here', { raw: true }).then(function(data){
console.log(data);
});
6
編輯你的 「node_modules/sequelize/lib中/方言/ mysql /下查詢generator.js」
在圍繞線118
變化
var query = "SELECT <%= attributes %> FROM <%= table %>"
到
var query = "SELECT " + ((options.distinct)? 'DISTINCT ':'') +"<%= attributes %> FROM <%= table %>",
現在你可以在你的sequelize要求增加一個選項distinct: true
希望它有助於-_-^
0
由於Sequelize 1.7版,選擇查詢已移入的lib /方言/abstract/query-generator.js。
周邊線1167,更改
mainQueryItems.push( 「選擇」 + mainAttributes.join ....)
到
mainQueryItems.push('SELECT '); if (options.distinct) { mainQueryItems.push('DISTINCT '); } mainQueryItems.push(mainAttributes.join(', ') + ' FROM ' + options.table);
通過方式,我使用Sqlite和Postgres,兩者都支持「DISTINCT」。如果您使用的方言不支持截然不同的特性,那麼顯然這條線會給您帶來問題,因爲它會針對您所使用的所有SQL類型生成。我懷疑這就是爲什麼這個簡單的改變並沒有將它變成主要的Sequelize源代碼樹。
5
假設你想申請DISTINCT以下查詢:
Tuple.findAll({attributes: ['key', 'value']});
那麼這是一個(的hackish)的方式來實現你想要的東西,而不必自己寫整個查詢:
Tuple.findAll({attributes: [[Sequelize.literal('DISTINCT `key`'), 'key'], 'value']});
(測試用Sequelize V2.1.0)
編輯2015-06-08:仍然Sequelize V3.1.1工作
1
這有點類似於帕斯卡爾·路德維希提出的解決方案,但對於那些降落在這裏希望得到不同的值的列表給定列,您可以執行以下操作:
MyModel.aggregate('teh_field', 'DISTINCT', { plain: false }).then(...)
// Resolves to: [ { DISTINCT: value1 }, { DISTINCT: value2 }, ... ]
就這樣,很容易將其改造成一個標準的列表:
MyModel.aggregate('teh_field', 'DISTINCT', { plain: false })
.map(function (row) { return row.DISTINCT })
.then(function (tehValueList) {
// tehValueList = [ value1, value2, ... ]
})
;
1
你可以做到以下幾點:
myModel.findAll({
attributes: [[sequelize.fn('DISTINCT', sequelize.col('col_name')), 'alias_name']],
where:{}
}).then(data => {}).....
從issues採取和它的作品。
相關問題
- 1. IPhone:選擇不同的行
- 2. 選擇不同的行
- 3. 從Sequelize選擇隨機記錄的findAll
- 4. 同步執行Sequelize查詢
- 5. 選擇具有相同的ID行,並選擇剩餘行不相同的ID
- 6. 選擇不同的?
- 7. 選擇不同
- 8. Sequelize MySQL從同一個表中選擇(左連接)
- 9. 選擇具有不同值的行
- 10. 使用連接選擇不同的行
- 11. 選擇來自不同行的數據
- 12. PostgreSQL的插入行不同於選擇
- 13. ,選擇N個不同值的行
- 14. 根據列選擇不同的行
- 15. 選擇在SQL中不同的行
- 16. SQL +內選擇不同的行集
- 17. 不同概率的隨機行選擇
- 18. 選擇不同的行中左連接
- 19. 選擇行具有不同值的列
- 20. 選擇表格中的不同行
- 21. 選擇id不同的所有行
- 22. 在MySQL中選擇不同的行
- 23. 選擇2個不同的行MySQL
- 24. didSelectRowAtIndexPath選擇不同的行時
- 25. 不同的選擇行爲(23)
- 26. 選擇菜單的行爲不同
- 27. 根據列值選擇不同的行
- 28. 從MongoDB中選擇不同的行
- 29. 選擇不同的行從左表
- 30. jQuery的每選擇行爲不同
好的。我明白了:) 可能在接下來的版本中,可以添加一個bool選項{distinct:true}(默認爲false)。 – shk
是的不知道它是否會在下一個版本,但我們應該添加它 – sdepold