tôi đang tạo truy vấn động trong quy trình được lưu trữ. thủ tục lưu trữ của tôi là như sau:truy vấn động mysql trong thủ tục được lưu trữ
CREATE PROCEDURE `test1`(IN tab_name VARCHAR(40),IN w_team VARCHAR(40))
BEGIN
SET @t1 =CONCAT("SELECT * FROM ",tab_name," where team=",w_team);
PREPARE stmt3 FROM @t1;
EXECUTE stmt3;
DEALLOCATE PREPARE stmt3;
END
khi tôi cố gắng chạy nó với các cuộc gọi sau đây:
call test1 ('Test','SPA');
tôi nhận được thông báo lỗi sau:
Error Code: 1054. Cột không xác định 'SPA' trong 'where clause'
tôi đã kiểm tra mà không có điều kiện ở đâu nd nó hoạt động tốt, nhưng với điều kiện nơi nó không hoạt động, tôi đã thử sử dụng @ với tên biến nhưng nó vẫn không hoạt động.
Cảm ơn sự giúp đỡ của bạn.
SET @ t1 = CONCAT ("SELECT col1 vào '@' var1 TỪ", TAB_NAME ", nơi đội = '", w_team, "'"); var1 luôn là null, tại sao vậy? – Shann
@Shann: Bạn đang cố gắng làm gì? –
tôi đang cố gắng để lưu trữ các col1 vào var1, tôi đặt @ in '' bởi vì tôi đã có lỗi trên stack. – Shann