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

Buộc MySQL trả về các bản sao từ mệnh đề WHERE IN mà không sử dụng JOIN / UNION?

Tôi không chắc tại sao bạn lại muốn cấm JOIN vì nó khá thiết yếu đối với SQL. Nó giống như việc cấm các lệnh gọi hàm trong ngôn ngữ hàm.

Một cách tốt để giải quyết vấn đề này là tạo một tập hợp kết quả chứa các id bạn muốn trả về và kết hợp với nó. Đây là một cách để làm điều đó:

SELECT Table1.*
FROM Table1
JOIN (SELECT 1 AS id
      UNION ALL SELECT 2
      UNION ALL SELECT 3
      UNION ALL SELECT 4
      UNION ALL SELECT 5
      UNION ALL SELECT 1
      UNION ALL SELECT 2
      UNION ALL SELECT 5
      UNION ALL SELECT 5) AS T1
ON Table1.id = T1.id

Tôi không chắc bạn đã xem xét phương pháp này chưa? Nó không có vấn đề gì mà bạn có vẻ sợ.

Nếu bạn cấm tham gia, bạn không thể làm điều này trừ khi bạn sử dụng một quy trình được lưu trữ, mà tôi muốn nói là tệ hơn tham gia.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết nối với cơ sở dữ liệu từ xa từ máy tính localhost bằng mysql và PHP

  2. Sắp xếp theo ngày (mới nhất)

  3. Cách xử lý đúng ký tự quốc tế trong PHP / MySQL / Apache

  4. Mysql count so với mysql SELECT, cái nào nhanh hơn?

  5. Nối một chuỗi và Id khóa chính trong khi chèn