Tôi có một bảng trên pgsql với tên (có nhiều hơn 1 mio. Hàng), nhưng tôi cũng có nhiều bản sao. Tôi chọn 3 trường: id
, name
, metadata
.Postgres: Khác biệt nhưng chỉ cho một cột
Tôi muốn chọn ngẫu nhiên chúng với ORDER BY RANDOM()
và LIMIT 1000
, vì vậy tôi thực hiện việc này là nhiều bước để lưu một số bộ nhớ trong tập lệnh PHP của tôi.
Nhưng làm cách nào tôi có thể làm điều đó để nó chỉ cung cấp cho tôi danh sách không có trùng lặp trong tên.
Ví dụ: [1,"Michael Fox","2003-03-03,34,M,4545"]
sẽ được trả lại nhưng không được trả lại [2,"Michael Fox","1989-02-23,M,5633"]
. Trường tên là quan trọng nhất và phải là duy nhất trong danh sách mỗi khi tôi thực hiện lựa chọn và nó phải là ngẫu nhiên.
Tôi đã thử với GROUP BY name
, sau đó tôi hy vọng tôi có id và siêu dữ liệu trong GROUP BY
cũng như trong chức năng tăng cường, nhưng tôi không muốn có chúng bằng cách nào đó được lọc.
Bất kỳ ai biết cách tìm nạp nhiều cột nhưng chỉ phân biệt trên một cột?
Bắt tốt khi đặt hàng. Tôi đã không bao gồm nó bởi vì họ đã đề cập muốn có một thứ tự ngẫu nhiên, nhưng điều quan trọng là phải đề cập đến. –
có, thứ tự cũng quan trọng, cảm ơn. – NovumCoder
Yêu cầu 'đặt hàng theo tên' phải không? Nó sẽ tạo ra một kết quả khác với 'thứ tự bởi col1'? –