10/10/2018, 11:40
Cho e hỏi một chút về sql với
Mình đang làm phần các sản phẩm đã xem. Mình dùng cookie và đã lưu đc thành một mảng các id sản phẩm đã xem. Ví dụ: $id = array('6','2','5','4','3','1').
Mình truy vấn vào db và lấy ra các sản phẩm có id tương ứng dùng câu lệnh:
select * from products where id in(6,2,5,4,3,1)
hoặc select * from products where (id=6 OR id=2 OR id=5 OR id=4 OR id=3 OR id=1)
thì lấy ra được danh sách các sản phẩm đã xem tuy nhiên thứ tự của các bản ghi lại bị sắp xếp thành 1,2,3,4,5,6.
Mình muốn các bản ghi vẫn giữ nguyên thứ tự. Các bạn giúp mình với
Mình đã tìm đc 1 cách nhưng xem ra ko đc tối ưu lắm
Mình truy vấn vào db và lấy ra các sản phẩm có id tương ứng dùng câu lệnh:
select * from products where id in(6,2,5,4,3,1)
hoặc select * from products where (id=6 OR id=2 OR id=5 OR id=4 OR id=3 OR id=1)
thì lấy ra được danh sách các sản phẩm đã xem tuy nhiên thứ tự của các bản ghi lại bị sắp xếp thành 1,2,3,4,5,6.
Mình muốn các bản ghi vẫn giữ nguyên thứ tự. Các bạn giúp mình với
Mình đã tìm đc 1 cách nhưng xem ra ko đc tối ưu lắm
Code:
select * from products where id = 6 union all select * from products where id = 2 union all select * from products where id = 5 union all select * from products where id = 4 union all select * from products where id = 3 union all select * from products where id = 1
Bài liên quan
Làm trên SQL tạm thời em chưa nghĩ ra với mảng hỗn độn, nhưng bác có thể trả ra câu lệnh SQL mà bác query theo kiểu mảng có key là ID trỏ tới value là đối tượng bác lấy ra.
Như thế ra ngòai giao diện bác lấy mảng đó ra theo id thì không cần để ý tới thứ tự mảng
dữ liệu
15f703e2fbccef3307500df62b9944ad_43233489.untitled1.png
mysql:
SELECT * FROM mn_product WHERE product_id in (13,10,12) ORDER
BY FIELD(product_id, 13,10,12);
e095f7ef70e50e8d72baf5d78f3c1045_43233491.untitled2.png