동적 SQL은 우리가 원래의 질의와 함께 연결할 수 있도록 필요한 값을 포함한다
DELIMITER $$
CREATE PROCEDURE createtableTest(IN tname2 varchar(20),IN f varchar(20))
BEGIN
DROP TABLE IF EXISTS tname2;
SET @sql = CONCAT('CREATE TABLE tname2 as SELECT * FROM data WHERE group_name like ''%',f,'%''');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END $$
DELIMITER ;
,
예를 들어, f
의 값이 hello
되면, 연결된 문자열이 외에 연결에서 UPDATE
CREATE TABLE tname2 as SELECT * FROM data WHERE group_name like '%hello%'
생산합니다, 당신은 또한 매개 변수화 할 수있는 가치가 가장 좋은 방법, 예
DELIMITER $$
CREATE PROCEDURE createtableTest(IN tname2 varchar(20),IN f varchar(20))
BEGIN
DROP TABLE IF EXISTS tname2;
SET @sql = CONCAT('CREATE TABLE tname2 as SELECT * FROM data WHERE group_name like ?');
PREPARE stmt FROM @sql;
SET @val = CONCAT('%', f, '%');
EXECUTE stmt USING @val;
DEALLOCATE PREPARE stmt;
END $$
DELIMITER ;
@JW 웃음, 정확히 무엇을 편집하셨습니까? 'sql' 태그를 추가 했습니까? 나는 특정 질문이 MySQL과 관련 있다고 확신한다. –