Tôi có một biểu mẫu nơi người dùng có thể chỉ định các thông số khác nhau để tìm hiểu một số dữ liệu (trạng thái, ngày, v.v ...).Thủ tục được lưu trữ với các tham số "WHERE" tùy chọn
tôi có thể tạo ra một truy vấn đó là:
SELECT * FROM table WHERE:
status_id = 3
date = <some date>
other_parameter = <value>
vv Mỗi WHERE
là tùy chọn (tôi có thể chọn tất cả các hàng với status = 3
, hoặc tất cả các hàng với date = 10/10/1980
, hoặc tất cả các hàng với status = 3 AND date = 10/10/1980
, vv).
Với số lượng lớn tham số, tất cả tùy chọn, cách tốt nhất để tạo nên một quy trình được lưu động là gì?
Tôi đang làm việc trên nhiều DB khác nhau, chẳng hạn như: MySQL, Oracle và SQLServer.
Điều này không cho phép tất cả các thông số là tùy chọn. Trong ví dụ này @status_id phải được chuyển vào. Ngay cả khi nó là null, bạn phải vượt qua null để thực hiện điều này. – Eppz
Bạn có thể cung cấp một giá trị mặc định cho các tham số trong MS SQL Server. Tôi không biết về MySQL –
Chỉ cần ghi nhớ rằng tùy thuộc vào RDBMS của bạn và làm thế nào nó lưu trữ các kế hoạch truy vấn, bạn có thể không nhận được hiệu suất tốt nhất có thể với phương pháp này. –