질문 1
프로시져를 만들 샘플입니다. 그런데 concat 함수에서 문자열 연결하는 부분에서 변수를 이용하면 문자열이 연결이 안됩니다.
declare t_table varchar(100);
declare t_temp varchar(100);
set @t_table = 'testtable';
set @t_temp = 'select * from ';
select @t_temp := concat(@t_temp, @t_table);
select @t_temp;
결과물이 'select * from ' 으로만 출력이 됩니다.
이리저리 고민하다가
set @t_temp = concat(@t_temp, @t_table); ==> select @t_temp := concat(@t_temp, @t_table);
변경을 해봤더니 아무 값도 담기지 않습니다.
이럴 경우 어떤 방식으로 처리하나요?
질문 2
프로시져에서 동적 쿼리가 만들어 질 경우
CREATE PROCEDURE list (in v_use_gb char(1), in v_text char(50))
BEGIN
declare stmt varchar(500);
set @stmt = "select * from tablename where a = ? and b = ?"
prepare stmt from @stmt;
execute stmt using @v_use_gb, @v_text;
end
이 방식과
CREATE PROCEDURE list (in v_use_gb char(1), in v_text char(50))
BEGIN
select * from tablename where a = v_use_gb and b = v_text
end
두가지 방식중 어느것이 속도가 더 좋은지요
제가 볼땐 두번째 방식이 훨시 좋을 거라 보고 있습니다만 실제 어떤지 모르겠네요
|