programing

mariadb IF 스테이트먼트 오류 메시지?

newsource 2022. 11. 16. 21:17

mariadb IF 스테이트먼트 오류 메시지?

SQL 쿼리를 테스트합니다.

    IF 3 = 3 THEN 
       SELECT 'TRUE'
    ELSE
       SELECT 'FALSE'
    END IF;

SQLyog에서 그 쿼리를 삭제했습니다.

아래와 같은 에러 메세지가 표시됩니다.

 You have an error in your SQL syntax; check the manual that corresponds to 
 your MariaDB server version for the right syntax to use near 'ELSE SELECT 
 'FALSE' END IF' at line 3

그 질문은 매우 간단합니다.에러 메세지가 표시되는 이유를 알 수 없습니다.

IF그 자체는 쿼리가 아니므로 독립 실행형 문으로 실행할 수 없습니다.

두 가지 다른 점이 있습니다.IF사용할 수 있습니다.

하나복합문에서의 조건부 구성이다.저장된 루틴에서 사용할 수 있습니다.

DELIMITER $
CREATE PROCEDURE pr()
BEGIN
    IF 3 = 3 THEN 
       SELECT 'TRUE';
    ELSE
       SELECT 'FALSE';
    END IF;
END $
DELIMITER ;
CALL pr;

또는 상당히 새로운 버전의 MariaDB(10.1+)를 실행하고 있는 경우 익명 블록에서도 사용할 수 있습니다.

DELIMITER $
BEGIN NOT ATOMIC
    IF 3 = 3 THEN 
       SELECT 'TRUE';
    ELSE
       SELECT 'FALSE';
    END IF;
END $
DELIMITER ;

하나는IF쿼리 내에서 사용할 수 있는 함수:

SELECT IF(3 = 3 THEN 'TRUE','FALSE');

다음과 같이 각 내부 문의 끝에 세미콜론이 필요합니다.

IF 3 = 3 THEN 
   SELECT 'TRUE';
ELSE
   SELECT 'FALSE';
END IF;

언급URL : https://stackoverflow.com/questions/48472328/mariadb-if-statements-error-message