sql >> Databáze >  >> RDS >> PostgreSQL

Dotaz Rails 3:Chyba při použití 'select' s 'order'

SQL můžete otestovat pomocí tohoto SQLFIDDLE .

Pouze Sqlite a MySql podporují toto použití, ale ostatní ne.

Podívejte se na tento dokument postgresql .

Omezení této funkce spočívá v tom, že klauzule ORDER BY vztahující se na výsledek klauzule UNION, INTERSECT nebo EXCEPT může specifikovat pouze název nebo číslo výstupního sloupce, nikoli výraz.

Pro váš případ není potřeba používat uniq, všechna uživatelská ID jsou již odlišná, tak proč nezkusit toto:

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

Za předpokladu, že jsou ID duplikována, můžete uniq použít ruby ​​místo DB.

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

Tento skript nikdy nevygeneruje sql s odlišným. Tento uniq po trhání je Array#uniq metoda.




  1. V příkazu SQL nahraďte NOT IN za LEFT JOIN

  2. Yii CDbConnection se nepodařilo otevřít připojení k databázi:nelze najít ovladač pomocí google cloud sql

  3. Při pokusu o instalaci Perl-Mysql DBD nelze najít mysql_config

  4. Co je to přesně BLOB v kontextu DBMS