Sélectionnez toutes les colonnes par une unique valeur de la colonne dans Rails 3
Dans Rails 3, comment puis-je sélectionner des lignes basées sur des valeurs de colonne, j'ai besoin d'obtenir toutes les colonnes pour exemple:
SELECT COUNT(DISTINCT date) FROM records
Cela retourne uniquement la colonne de la date, mais je veux que toutes les colonnes (nom, la date , l'âge , created_at) colonnes non seulement la date.
Merci pour votre aide
Mais si les deux lignes ont la même date, la ligne qui voulez-vous?
Comment êtes-vous réellement en exécution de la requête, en premier lieu,
Comment êtes-vous réellement en exécution de la requête, en premier lieu,
OriginalL'auteur Anand Kumar | 2012-04-25
Vous devez vous connecter pour publier un commentaire.
Le problème ici est que, par définition, il peut y avoir plusieurs enregistrements ayant la même date. Il nécessite une logique dans l'espace utilisateur pour déterminer qui de plusieurs enregistrements avec la date unique à utiliser. Voici un code pour obtenir ces lignes:
Si ce que vous êtes vraiment après l'unicité parmi plusieurs colonnes, la liste de toutes les colonnes dans la requête distinct:
Le fait que vous êtes en utilisant des moyens que chaque "ligne" est revenu représente en fait n lignes, de sorte que le DB ne sais pas laquelle des n lignes de tirer les colonnes restantes. C'est pourquoi il retourne uniquement les colonnes distinctes. Il ne peut pas faire d'autres...
OriginalL'auteur Troy
Je pense que cela va vous aider à
Merci de l'utiliser, et laissez-moi savoir.
OriginalL'auteur urjit on rails
Pour votre cas:
Ce sera le retour de tous vos colonnes avec pas de "date" répétitions.
OriginalL'auteur Hugo
Pour les rails 3.2 et supérieur,
Model.select('DISTINCT name, date, age, created_at')
OriginalL'auteur Abhaya