Est-il un moyen de sélectionner des lignes d'une table à l'aide de sequelize.js?
J'ai regardé à travers la documentation, mais le "finder méthodes" ne spécifiez pas un moyen pour accomplir cette tâche.
Ok. Je reçois ça 🙂 Probablement dans les prochaines versions, un bool option {distinctes: true} peut être ajouté (faux étant par défaut). yep ne sais pas si ça sera dans la prochaine version, mais nous devons l'ajouter stackoverflow.com/a/30070249/1353897 c'est la solution la plus élégante
C'est un peu similaire à la solution proposée par Pascal Ludwig, mais pour ceux qui débarquent ici à la recherche pour obtenir une liste des valeurs distinctes d'une colonne donnée, vous pouvez effectuer les opérations suivantes:
mainQueryItems.push('SELECT ');if(options.distinct){
mainQueryItems.push('DISTINCT ');}
mainQueryItems.push(mainAttributes.join(', ')+' FROM '+ options.table);
En passant, j'utilise Sqlite et Postgresql, qui soutiennent tous deux "DISTINCT". Si vous utilisez un dialecte qui ne prend pas en charge distinctes, alors il est évident que cette ligne de causer des problèmes pour vous, car il sera généré pour toutes les SQL saveurs que vous utilisez. Je suppose que c'est pourquoi ce simple changement n'a pas fait dans la principale Sequelize de l'arbre source.
Il n'est pas possible automatiquement, mais si vous n'avez pas l'esprit de la création du sql sur votre propre, vous pourriez faire ceci:
Amusez-vous 🙂
Mise à JOUR
then
au lieu desuccess
que la promesse de la fonction.Sequelize.query
a été refait à utiliser uniquement les paramètressql
etoptions
raw
acceptetrue/false
mais pasplain
comme valeur.Ainsi, selon la nouvelle version, le code devrait ressembler à ceci:
yep ne sais pas si ça sera dans la prochaine version, mais nous devons l'ajouter
stackoverflow.com/a/30070249/1353897 c'est la solution la plus élégante
OriginalL'auteur sdepold
En supposant que vous souhaitez appliquer DISTINCTE de la requête suivante:
alors c'est un (hackish) de manière à atteindre ce que vous voulez sans avoir à écrire la totalité de la requête vous-même:
(Testé avec Sequelize v2.1.0)
Modifier 2015-06-08: travaille Toujours avec Sequelize v3.1.1
OriginalL'auteur Pascal Ludwig
modifier votre "node_modules/sequelize/lib/dialects/mysql/query-generator.js"
autour de la ligne 118
changement
en
maintenant, vous pouvez ajouter une option
distinct: true
dans votre sequelize demandeespère que cela aide -_^
OriginalL'auteur Decky
Vous pouvez effectuer les opérations suivantes:
prises de questions et il fonctionne.
OriginalL'auteur Ali Sherafat
C'est un peu similaire à la solution proposée par Pascal Ludwig, mais pour ceux qui débarquent ici à la recherche pour obtenir une liste des valeurs distinctes d'une colonne donnée, vous pouvez effectuer les opérations suivantes:
Avec qui, il est facile de transformer en une liste standard:
OriginalL'auteur svvac
De Sequelize la version 1.7, la requête select a été déplacé dans lib/dialects/abstract/query-generator.js.
Autour de la ligne 1167, changement
à
En passant, j'utilise Sqlite et Postgresql, qui soutiennent tous deux "DISTINCT". Si vous utilisez un dialecte qui ne prend pas en charge distinctes, alors il est évident que cette ligne de causer des problèmes pour vous, car il sera généré pour toutes les SQL saveurs que vous utilisez. Je suppose que c'est pourquoi ce simple changement n'a pas fait dans la principale Sequelize de l'arbre source.
OriginalL'auteur Patrick Chu