MySQL 매뉴얼 says CASE 문 (WHEN 부분)에는 statement_list가 포함될 수 있습니다.MySQL에서는 얼마나 많은 명령문을 조건부로 만들 수 있습니까?
정확한 내용은 어느 정도입니까? 나는 매개 변수화하고 싶은 꽤 큰 쿼리를 수행해야한다. 그러나 이것은 또한 조인중인 테이블을 변경해야한다는 것을 의미합니다.
UPDATE에게 ... I를이는 CASE 문을 사용하여 수행 할 수 없음을 나는 읽었습니다, 그래서 존재하는 모든 매개 변수 값을 저장 프로 시저를 다시 만들 필요가 없습니다 수있는 솔루션을 찾고 있어요 CURSOR를 사용하여 문제를 해결하려고했습니다. 나는 모든 객체에 대해 CURSOR를 정의했다. IF-ELSE 문을 사용하여 어떤 커서를 열고 루프하고 닫을 지 선택하고 싶습니다. 그러나 나는 ...
모든 커서와 변수 (USB, OBJ, mm, 스탬프) 다른 이름으로 선언되어 있지만, 내가 읽어을 단축했습니다 .... 구문 권리를 얻을 수
if OBJECTTYPE = 1 then
open CUR_1_BUILDING;
LOOP1: loop
fetch CUR_1_BUILDING into usb, obj, mm, stamp;
if no_more_rows then
close CUR_1_BUILDING;
leave loop1;
end if;
INSERT INTO ObjectCache (usb, obj, mm, date_checked) VALUES (usb, obj, mm, now());
end loop LOOP1;
CLOSE CUR_1_BUILDING;
else if OBJECTTYPE = 2 then
open CUR_2_CITY;
LOOP2: loop
fetch CUR_2_CITY into usb, obj, mm, stamp;
if no_more_rows then
close CUR_2_CITY;
leave loop2;
end if;
INSERT INTO ObjectCache (usb, obj, mm, date_checked) VALUES (usb, obj, mm, now());
end loop LOOP2;
close CUR_2_CITY;
end if;
CASE 문을 사용할 수있는 방법이 있습니까?
BEGIN
CASE
when OBJECTTYPE = 1
INSERT INTO ObjectCache SELECT id FROM Building
when OBJECTTYPE = 2
INSERT INTO ObjectCache SELECT id FROM City
END CASE;
END
ELSE IF ELSEIF가 있어야합니다. 부울 오타가 있었음 – Ropstah