2011-10-15 3 views
1

Im은 Wampserver 2.1을 mysql 버전 5.1.53과 함께 사용하고 있습니다.SQL IF가 작동하지 않습니다.

이 쿼리 :

SELECT * FROM `contents` WHERE 1 

실행,

IF 1 
SELECT * FROM `contents` WHERE 1 

하지 않는이 쿼리 동안, 나는 오류 얻을 :

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF 1 SELECT * FROM 내용 나는 고개를 한 WHERE 1' at line 1

을 'IF'문법이 수십 번 시도되어 prob를 찾을 수 없습니다. 흠. 왜 이런 일이 발생합니까?

+0

*를 실행하지 마십시오. *. 오류가 있습니까? –

+0

이 오류를 추가했습니다. –

+2

내가 틀릴 수도 있지만 그것이 임시 쿼리가 아닌 MySQL의 루틴에서만 유효하다고 생각할 수 있습니다. –

답변

6

IF 문은 저장된 프로그램 내의 흐름 제어 구성을위한 문입니다.

http://dev.mysql.com/doc/refman/5.6/en/flow-control-constructs.html

+0

IF 1 = 1 그 다음 SELECT * FROM'contents' WHERE 1 End IF가 작동하지 않습니다 –

+2

@TheGiG - 'DELIMITER $$ CREATE PROCEDURE foo() BEGIN/* your code */END' 다음에'foo'를 호출하십시오 –

+0

http://dev.mysql.com/doc/refman/5.6/en/if-statement.html을 확인하십시오. 예를 들어. IF 문은 함수 안에서 작동합니다. –

1

MySQL의 두 IF의이 다음과 같습니다 control-flow IF 및 절차에 대한 IF statement가. 저장된 루틴 (IF...THEN...을 사용할 수있는 곳)을 만들거나 SELECT ... IF(...)을 사용해야합니다.

+0

IF 1 = 1 그 후 SELECT * FROM'contents' WHERE 1 End IF가 작동하지 않습니다 –

+0

@ TheGiG, 저장된 루틴 내에서 실행되지 않으면 작동하지 않습니다. 당신은 저장된 루틴에서 이것을 시도하고 있습니까? – imm

관련 문제