Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

học thuyết - nhận bản ghi tiếp theo và trước

Câu trả lời của Alexandr là gần. Khi bạn truy vấn id < 2 LIMIT 1 nó sẽ trả về 1 , nhưng nếu bạn truy vấn id < 5 LIMIT 1 điều này cũng sẽ trả về 1 . Đó là vì nó trả về 1, 2, 3, 4 và lấy phần tử đầu tiên, là 1 chứ không phải là 4 cần thiết .

Chỉ cần thêm ORDER BY id DESC để lấy mục trước. Điều này sẽ trả về 4, 3, 2, 1LIMIT 1 sẽ trả về 4 hoặc phần tử trước đó.

$query = $em->createNativeQuery('SELECT id FROM users WHERE
        id = (SELECT id FROM users WHERE id > 2 LIMIT 1)
        OR
        id = (SELECT id FROM users WHERE id < 2 ORDER BY id DESC LIMIT 1)', $rsm);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn MySQL bằng cách chọn nhiều hộp kiểm với cập nhật tự động

  2. Định dạng dòng lệnh MySQL với UTF8

  3. mySQL - đối sánh đầu vào biểu mẫu latin (tiếng Anh) với dữ liệu utf8 (không phải tiếng Anh)

  4. PHP PDOException:SQLSTATE [HY000] [2019] Không thể khởi tạo bộ ký tự utf8mb4

  5. Làm cách nào để truy vấn một số cơ sở dữ liệu tương tự bằng Peewee?