Trang 1 / 2 12 LastLast
Hiển thị kết quả từ 1 đến 10 / 13
  1. #1
    Tham gia
    22-03-2008
    Bài viết
    86
    Like
    7
    Thanked 5 Times in 5 Posts

    Nói nhỏ nè ! Select theo thứ tự trong Mysql???

    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
    Quote Quote

  2. #2
    Tham gia
    30-06-2010
    Bài viết
    200
    Like
    5
    Thanked 23 Times in 20 Posts
    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 :
    Code:
    Select * From A order by charindex (id , '7,1,3,5')
    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 .

  3. #3
    Tham gia
    17-03-2010
    Location
    Mê Linh - Hà Nội
    Bài viết
    517
    Like
    0
    Thanked 5 Times in 4 Posts
    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

  4. #4
    Tham gia
    30-06-2010
    Bài viết
    200
    Like
    5
    Thanked 23 Times in 20 Posts
    Quote Được gửi bởi vzic View Post
    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
    Bạn này trả lời mà không hề đọc kỹ câu hỏi gì cả .
    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
    Có nghĩa là phải xếp theo thứ tự 7 2 3 5 .

  5. #5
    Tham gia
    22-03-2008
    Bài viết
    86
    Like
    7
    Thanked 5 Times in 5 Posts
    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???

  6. #6
    Tham gia
    30-06-2010
    Bài viết
    200
    Like
    5
    Thanked 23 Times in 20 Posts
    Quote Được gửi bởi kechettreo View Post
    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???
    Có phải bạn muốn khi thể hiện sắp xếp theo thứ thự dãy ('7,2,3,5') nghĩa là 7 trước rồi lần lượt đến 2 đến 3 đến 5 đúng như thứ tự của dãy id so sánh của bạn không ?
    Hay là bạn muốn xếp như bạn vzic nói ?

  7. #7
    Tham gia
    22-03-2008
    Bài viết
    86
    Like
    7
    Thanked 5 Times in 5 Posts
    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

  8. #8
    Tham gia
    30-06-2010
    Bài viết
    200
    Like
    5
    Thanked 23 Times in 20 Posts
    Ở 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' )

  9. #9
    Tham gia
    22-03-2008
    Bài viết
    86
    Like
    7
    Thanked 5 Times in 5 Posts
    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

  10. #10
    Tham gia
    07-12-2010
    Bài viết
    71
    Like
    0
    Thanked 7 Times in 2 Posts
    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

Trang 1 / 2 12 LastLast

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •