09/10/2018, 23:58

Cho Mình hởi thăm về câu lệnh select của mysql

Mình muốn chọn ra từ CSDL record có `id ` = 10 và `categories` = 1, tuy nhiên mình muốn trả về kết quả là 5 record sao cho 2 kết quả đầu cũng là 2 record trước `id` = 10 và có `categories` = 1, kết quả thứ 3 là record có `id` = 10 và 2 kết quả còn lại là 2 record tiếp theo có `categories` = 1. Ai có cách, xin chỉ mình với ... hu hu hu
AnhTuanKB viết 02:08 ngày 10/10/2018
Chẳng hiểu ý tác giả muốn gì!
zoejoe viết 02:02 ngày 10/10/2018
Được gửi bởi AnhTuanKB
Chẳng hiểu ý tác giả muốn gì!
Cái này cũng khó mà trình bày ý tưởng.
Ý mình muốn làm một Gallery, khi bắt đầu một slideshow tại một hình nào đó, thì bên cạnh nó luôn có các hinh cùng chủng loại liên tiếp để dễ dàng chuyển hình !
zoejoe viết 01:59 ngày 10/10/2018
giống như cái này nè :
Code:
« Bài trước | Bài tiếp theo »
khó nói thiệt
3do viết 02:13 ngày 10/10/2018
giả sử cat = x, id hiện tại = y

select next from `table` where cat = x and id > y order by id asc limit 1
select previous from `table` where cat =x and id < y order by id desc limit 1
VnVision viết 02:10 ngày 10/10/2018
Rất đơn giản, đừng nên suy nghĩ phức tạp quá làm gì:

Code:
SELECT * FROM table_name WHERE id > 7 AND id < 13 AND category = 1 ORDER BY id ASC
(Để có 7 & 13, chỉ việc lấy id (giả sử = 10) cộng & trừ 3)

Dùng php xử lý các record được trả về, các record có id < 10 sẽ là các record trước, các record > 10 là các record sau.. của record id đang xét.
zoejoe viết 02:10 ngày 10/10/2018
Thanks nhiều lắm
ddth muôn năm
3do viết 02:10 ngày 10/10/2018
Được gửi bởi VnVision
Rất đơn giản, đừng nên suy nghĩ phức tạp quá làm gì:

Code:
SELECT * FROM table_name WHERE id > 7 AND id < 13 AND category = 1 ORDER BY id ASC
(Để có 7 & 13, chỉ việc lấy id (giả sử = 10) cộng & trừ 3)

Dùng php xử lý các record được trả về, các record có id < 10 sẽ là các record trước, các record > 10 là các record sau.. của record id đang xét.
bạn sai rồi. Ví dụ danh sách id của category 1 là 3, 5, 10, 15 thì câu SQL của bạn sẽ ko có giá trị, trong khi đúng ra phải là 5 và 15
VnVision viết 02:05 ngày 10/10/2018
Ok, mình sai thật
Mà tớ đang học symfony đây, có vấn đề gì trao đổi với cậu nhá
3do viết 02:01 ngày 10/10/2018
welcome
Bài liên quan
0