가 어떻게 다음 SQL을 작성할 수 있습니다 MySQL의에서 CASE가조건
select * from blogimage where blog_id = '1' and orientation = 'h'
는하지만 ... 추가 ....
IF(and only if) orientation = 'h' is null... then use orientation = 'v'
가 어떻게 다음 SQL을 작성할 수 있습니다 MySQL의에서 CASE가조건
select * from blogimage where blog_id = '1' and orientation = 'h'
는하지만 ... 추가 ....
IF(and only if) orientation = 'h' is null... then use orientation = 'v'
원하는 경우 적절한를 작성하는 방법 경우에만 선호 방향으로 작동 한 기록 = 'H'
SELECT * FROM blogimage
WHERE blog_id = '1' AND (orientation = 'h' OR orientation = 'v')
ORDER BY orientation ASC LIMIT 1
하지만 orientation = 'h'방향에 우선 순위를 지정하고 싶습니다. 'v'... 그래서 blog_id = 1에는 h와 v 이미지가 모두 있습니다. 단지 h 만 원합니다. – user3011784
그리고 blog_id에 'h'라는 이미지가없는 경우 ... 'v'를 사용합니다. – user3011784
방금 내 대답을 업데이트했습니다. 나는 당신이 필요한 것을 쉽게 해결할 수 있다고 생각합니다. –
이 문은 유효한 Case
문이를하고 싶어. 그러나 if exists
문이 필요하다면 저장 프로 시저를 사용해야한다고 생각합니다. 그것이 당신이 창조하려는 것입니까?
이 명령문을 사용하면 한 행을 되 찾을 수 있습니다. h
행이 있으면 다시 표시됩니다. 그렇지 않은 경우 v
행을 반환합니다.
select * from blogimage where blog_id = '1' and (orientation = 'h' Or orientation = 'v') Order By Case When orientation = 'h' Then 0 Else 1 End Asc Limit 1
'orientation = 'h'is null'는 플랫 아웃 구문 오류입니다. 'SELECT IF (방향은 NULL, 'v', 'h')'와 같은 의미일까요? –
아니, 나는 오리 엔테이션 = 'h'가 어디로 가고 싶지 ...하지만 오리 엔테이션 'h'로 결과가없는 경우에는 오리엔테이션 = 'v'를 대신 사용합니다. – user3011784