MySQL에서 삼항 조건부 연산자를 구현하고 싶습니다. 하나의 필드 ID가있는 테이블이 있습니다. 값은 null 일 수 있습니다. 다음 id
과 같은 삼항 조건부 형식 으로 표시 하고 싶습니다.
select id = id == null ? 0 : id;
MySQL에서 가능합니까?
MySQL에서 삼항 조건부 연산자를 구현하고 싶습니다. 하나의 필드 ID가있는 테이블이 있습니다. 값은 null 일 수 있습니다. 다음 id
과 같은 삼항 조건부 형식 으로 표시 하고 싶습니다.
select id = id == null ? 0 : id;
MySQL에서 가능합니까?
답변:
이 시도 :
select if(Id is null, 0, id) as Id;
null
또는 ''
어쩌면 0
. MySQL은 때때로 duche의 비트입니다
문서 는 당신의 친구입니다. 읽어야합니다!
그것은 말한다 :
IFNULL(expr1,expr2)
그렇지
expr1
않은NULL
경우IFNULL()
반환합니다expr1
. 그렇지 않으면을 반환합니다expr2
.
그리고 많은 예. 이것은 NULL
비교 대상과 비교 대상을 두 번째 피연산자 로 사용하는 삼항 조건을 사용하는 것과 같습니다 . 이 기호를 사용하여 발생하지 않습니다 ?
그리고 :
당신은 아무것도 정말 관련이없는 얻을.
따라서 귀하의 경우 :
SELECT IFNULL(`id`, 0) FROM `table`
세 개의 피연산자를 명시 적으로 제공하고 싶다면 (왜?!) 다음으로 전환하십시오 IF
.
SELECT IF(`id` IS NULL, 0, `id`) FROM `table`
CASE WHEN id IS NULL THEN 0 ELSE id END
IFNULL
간결합니다.
IF
대신 사용 IFNULL
하거나 COALESCE
null이 아닌 값을 가져 오지 않고 일반 상태로만 해석해야합니다. SELECT IF(a.cancellationReason IS NOT NULL, 'C', 'A')) as appointment_status
나를 위해 작동합니다.