[mysql] MySQL 쿼리에서 IF ELSE 문을 작성하는 방법

MySQL 쿼리에서 IF ELSE 문을 어떻게 작성합니까?

이 같은:

mysql_query("...(irrelevant code).. IF(action==2&&state==0){state=1}");

그런 다음 내 배열에서 다음을 수행 할 수 있어야합니다.

 $row['state']
//this should equal 1, the query should not change anything in the database,
//just the variable for returning the information



답변

CASE 을 사용하고 싶을 것입니다 .

그들은 다음과 같이 보입니다 :

SELECT col1, col2, (case when (action = 2 and state = 0)
 THEN
      1
 ELSE
      0
 END)
 as state from tbl1;


답변

C / PHP 스타일이 아닌 SQL로 작성해야합니다.

IF( action = 2 AND state = 0, 1, 0 ) AS state

쿼리에 사용

IF ( action = 2 AND state = 0 ) THEN SET state = 1

저장 프로 시저 또는 함수에 사용


답변

당신은 찾고 있습니다 case:

case when action = 2 and state = 0 then 1 else 0 end as state

MySQL에는 if구문 ( if(action=2 and state=0, 1, 0))이 있지만 case더 보편적입니다.

as state열에 별칭 을 지정하는 것뿐입니다. 이것이 SQL 쿼리의 열 목록에 있다고 가정합니다.


답변

SELECT col1, col2, IF( action = 2 AND state = 0, 1, 0 ) AS state from tbl1;

또는

SELECT col1, col2, (case when (action = 2 and state = 0) then 1 else 0 end) as state from tbl1;

두 결과 모두 동일합니다 ….


답변

mySQL 참조 매뉴얼에 따르면 if 및 else 문 사용 구문 :

IF search_condition THEN statement_list
[ELSEIF search_condition THEN statement_list] ...
[ELSE statement_list]
END IF

따라서 귀하의 쿼리와 관련하여 :

x = IF((action=2)&&(state=0),1,2);

또는 사용할 수 있습니다

IF ((action=2)&&(state=0)) then
state = 1;
ELSE
state = 2;
END IF;

이 링크에 좋은 예가 있습니다.
http://easysolutionweb.com/sql-pl-sql/how-to-use-if-and-else-in-mysql/


답변