sql >> Databasteknik >  >> RDS >> PostgreSQL

Rails 3 Fråga:får fel när du använder "select" med "order"

Du kan testa SQL med denna SQLFIDDLE .

Endast Sqlite och MySql stöder denna användning, men andra gör det inte.

Se detta postgresql-dokument .

En begränsning av den här funktionen är att en ORDER BY-sats som gäller resultatet av en UNION-, INTERSECT- eller EXCEPT-sats bara kan ange ett utdatakolumnnamn eller nummer, inte ett uttryck.

För ditt fall finns det inget behov av att använda uniq, alla användar-ID är redan distinkta, så varför inte prova detta:

User.order("email DESC").pluck(:id)

Om du antar att ID:n dupliceras kan du uniq av ruby ​​istället för DB.

User.order("email DESC").pluck(:id).uniq

Detta skript kommer aldrig att generera sql med distinkt. Denna uniq efter plockning är en Array#uniq metod.




  1. Schemalägg SQL Job i ett användarkonfigurerat tidsintervall varje dag

  2. Oavsiktliga biverkningar – Sovsessioner som håller lås

  3. laravel orderByRaw() på frågebyggaren

  4. Ajax metod för att fylla i en andra dynamisk rullgardinsmeny baserat på urvalet i den första