PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Truy vấn Rails 3:gặp lỗi khi sử dụng 'select' với 'order'

Bạn có thể kiểm tra SQL bằng SQLFIDDLE này .

Chỉ Sqlite và MySql hỗ trợ cách sử dụng này, còn những người khác thì không.

Tham khảo tài liệu postgresql này .

Hạn chế của tính năng này là mệnh đề ORDER BY áp dụng cho kết quả của mệnh đề UNION, INTERSECT hoặc EXCEPT chỉ có thể chỉ định tên hoặc số cột đầu ra, không phải là một biểu thức.

Đối với trường hợp của bạn, không cần sử dụng uniq, tất cả id người dùng đã khác biệt rồi, vậy tại sao bạn không thử cách này:

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

Giả sử các id bị trùng lặp, bạn có thể uniq bằng ruby ​​thay vì DB.

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

Tập lệnh này sẽ không bao giờ tạo sql với phân biệt. uniq này sau khi nhổ là một Array#uniq phương pháp.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. postgres cắt ngắn chậm

  2. Quên mật khẩu quản trị viên trên Postgres (Cài đặt Windows), không thể đặt lại

  3. Khoảng cách giữa 2 POINT ở Postgis trong srid 4326 tính bằng mét

  4. Hàm array_append không hoạt động

  5. SQL - tính toán ngày kết thúc từ một ngày bắt đầu nhất định với các dấu ngắt tùy ý