MySQL에서 삼항 조건부 연산자를 구현하고 싶습니다. 하나의 필드 ID가있는 테이블이 있습니다. 값은 null 일 수 있습니다. 나는이 같은 삼항 조건 형식으로 id
를 표시하려면 :MySQL에서 삼항 조건부 연산자를 구현하는 방법
select id = id == null ? 0 : id;
는 MySQL의에서 수 있습니까?
MySQL에서 삼항 조건부 연산자를 구현하고 싶습니다. 하나의 필드 ID가있는 테이블이 있습니다. 값은 null 일 수 있습니다. 나는이 같은 삼항 조건 형식으로 id
를 표시하려면 :MySQL에서 삼항 조건부 연산자를 구현하는 방법
select id = id == null ? 0 : id;
는 MySQL의에서 수 있습니까?
이 시도 :
select if(Id is null, 0, id) as Id;
The documentation은 (는) 친구입니다. 당신은 그것을 읽어야합니다!
은 말한다 : expr1
하지 NULL
, IFNULL()
반환 expr1
입니다
IFNULL(expr1,expr2)
경우; 그렇지 않으면
expr2
을 반환합니다.
그리고 많은 예제가 있습니다. 이것은 NULL
에 대한 비교와 비교 대상을 두 번째 피연산자로 사용하는 삼항 조건부를 사용하는 것과 같습니다. 심볼 ?
및 :
을 사용하면 실제로 아무 것도 관련이 없게됩니다.
따라서, 귀하의 경우 : 당신이 명시 적으로 (왜?!) 세 개의 피연산자를 제공하기 위해 필사적 경우
SELECT IFNULL(`id`, 0) FROM `table`
후 IF
로 전환 :
SELECT IF(`id` IS NULL, 0, `id`) FROM `table`
+1하지만 질문에 답할 때 : 'ID는 NULL 일 때 0 ELSE id END' –
@ MichaelKrelin-hacker : 똑같은 거요? 그리고'IFNULL'은 더 간결합니다. –
@ MichaelKrelin-hacker : 오, 알겠습니다. –
세 가지 연산자와 동일한 논리를 구현할 수있는 두 가지 방법이 있습니다.
IF
기능을 사용하십시오. IF(expression, true result, false result)
예 : CASE
표현식을 사용하십시오. 당신은 NULL을 검사 할 때
CASE WHEN expression THEN <true result> ELSE <false_result> END
는 당신은, 예를 IFNULL
또는 COALESCE
기능을 사용할 수 있습니다.
IFNULL(ID, 0)
COALESCE(ID, 0)
[당신이 MySQL을 선택 성명에서 조건부 쓰기합니까?] (의
가능한 중복 http://stackoverflow.com/questions/1647961/how-do-you-write-a-conditional-in- a-mysql-select-statement) –