2011-07-06 3 views
0

두 개의 fileds가있는 mysql에 테이블이 있습니다. title_en, title_es 언어가 영어이면 title_en이 필수이며 title_es는 선택 사항입니다. langauge가 SPANISH이면 양식 데이터를 처리하는 동안 title_en이 필수이며 title_en은 선택 사항입니다. 참고 : 이것은 데이터 입력 용입니다. 신청MYSQL에서 title_es가 비어있는 경우 title_en을 가져 오려고합니다.

대부분의 경우 하나는 비어 있습니다. PHP에서

은 내가 '_ 선택 제목'동적 쿼리를

$의 SQL = 물품. $ LANG. ' 제품에서 ';

언어는 영어 다음이 될 "제품에서 title_en 선택"을 할 경우. 언어가 스페인어 인 경우 "제품에서 title_es 선택"이됩니다. 언어는 스페인어 인 경우 페이지를 나열하는

, 나는 몇 가지 (언어가 영어 때 입력) 레코드 title_es을 위해 비어있는 문제가 있습니다.

나는 그것이 모두를 가져 오는 및 표시 whould title_en title_es 다음 비어 있는지 확인합니다 PHP 함수를 이용하여 처리 할 수 ​​있습니다 알고 있습니다.

는하지만 난 모든 사이트가 완료되는 MySQL의에서이를 처리하는이 시점 클라이언트에서 시작에 모두 필요한 한, 한 제목이 필요하고 다른 선택합니다.

MySQL의 해결책 만 제시하십시오.

감사합니다.

답변

1
SELECT 
case when title_es is null then title_en 
    else title_es 
end as title 
FROM product 
+0

완벽 : 그 작품 .. 도와 줘서 고마워. –

0

select case title_en when null then title_es else title_en end as title from product

이 분야에서 널 (null)을 허용하지 않는 경우, 바로이 도움이

희망 ""와 널을 대체!

+0

빠른 응답을 보내 주셔서 감사합니다. 귀하의 쿼리를 시도했지만 오류가 발생합니다. '제품에서 사용하는 구문, 거의 모든 로직을 사용하는 동안 어떤 식 으로든 사용할 수 있습니다. SELECT *, if (title _ '. $ lang.'= "", 제목 _ '. $ Otherlang.', 제목 _ '. $ lang.') 제목으로 사용할 수 없습니다. If를 선택하면 :: 오류가 발생하지만 SELECT SOmeFields, if (title _ '. $ lang.'= "", title _ '. $ Otherlang.', title _ '. $ lang.') 제목은 저에게 맞습니다. 도와 줘서 고마워 –

관련 문제