sql >> Database teknologi >  >> RDS >> PostgreSQL

Rails 3, ActiveRecord, PostgreSQL - .uniq kommando virker ikke?

Da fejlen angiver for SELECT DISTINCT, ORDER BY expressions must appear in select list .Du skal derfor udtrykkeligt vælge den klausul, du bestiller efter.

Her er et eksempel, det ligner dit tilfælde, men generaliser lidt.

Article.select('articles.*, RANDOM()')
       .joins(:users)
       .where(:column => 'whatever')
       .order('Random()')
       .uniq
       .limit(15)

Så medtag udtrykkeligt din ORDER BY klausul (i dette tilfælde RANDOM() ) ved hjælp af .select() . Som vist ovenfor, for at din forespørgsel skal returnere artikelattributterne, skal du også udtrykkeligt vælge dem.

Jeg håber det hjælper; held og lykke



  1. Django JSONField inde i ArrayField

  2. MariaDB JSON_CONTAINS() Forklaret

  3. AMD EPYC-processorer i virtuelle Azure-maskiner

  4. Kan vi bruge threading i PL/SQL?