Mình có 1 câu truy vấn thế này nhưng vẫn chưa có hướng giải quyết mong các bạn giúp mình dùm.
select * from A where id in ('7,2,3,5') .
Mình muốn lấy tập kết quả trả về theo thứ tự id nằm trong dãy id trên.
Cảm ơn các bạn nhiều
Mình có 1 câu truy vấn thế này nhưng vẫn chưa có hướng giải quyết mong các bạn giúp mình dùm.
select * from A where id in ('7,2,3,5') .
Mình muốn lấy tập kết quả trả về theo thứ tự id nằm trong dãy id trên.
Cảm ơn các bạn nhiều
Mình không rành về mysql nhưng mình nghĩ cũng có cùng 1 cách giải quyết thôi .
Ví dụ đây là cách làm ở MsSql :
Charindex ( x , y ) là hàm trả về vị trí của chuỗi x trong chuỗi y theo thứ tự từ trái qua phải .Code:Select * From A order by charindex (id , '7,1,3,5')
select * from A where id in ('7,2,3,5') order by id :để sắp xếp từ 2 - 7
select * from A where id in ('7,2,3,5') order by id desc :sắp xếp từ 7 - 2
Trường id đang có sẵn index cứ việc thôi
Cảm ơn các bạn đã giúp đỡ nhưng mình vẫn chưa giải quyết được câu truy vấn này. Chẳng lẽ sql thì có thể mà mysql lại không thể sao???
Uhm. Ý mình là muốn sắp xếp theo thứ tự 7,2,3,5 đó
Cập nhật Link sopcast trong ngày sopcast . vn
Ở mysql thì hàm tương tự Charindex() là Locate()
Bạn có thể thử lệnh này :
Code:Select * from A where id in ('7,2,3,5') Order by Locate( id, '7,2,3,5' )
Cảm ơn bạn Hoangnnm đã nhiệt tình giúp đỡ. Nhưng với câu lệnh trên mình chỉ lấy được dòng có id đầu tiên là 7. Chắc Mình phải nghĩ cách khác vậy. Cảm ơn các bạn đã quan tâm.
Cập nhật Link sopcast trong ngày sopcast . vn
tại sao lại cứ phải sắp xếp theo id lộn xộn phức tạp thế nhỉ, bạn có thể thêm 1 trường nữa là thutu chẳng hạn rồi
Select * From A order by thutu DESC hoặc ASC;
trong trường thutu bạn đặt số cho nó là xong
ngoài ra bạn có thể sắp xếp theo thứ tự ngày cập nhật, ngày tạo ...vv
Bookmarks