2011-07-06 5 views
0

mysqlに2つのfiledsを持つテーブルがありますtitle_en、title_es 言語がENGLISHの場合、title_enは必須で、title_esはオプションです。 langaugeがSPANISHの場合は、title_Eが必須であり、title_enはフォームデータの入力中はオプションです。 注:これはデータ入力用です。MYSQLがtitle_esが空の場合はtitle_enを取得したい

ほとんどの場合、1つのフィールドは空白になります。 PHPで

私は

$ sqlを= '_タイトルを選択して' 動的なクエリを記述します。$ LANG。」製品から ';

言語が英語の場合、「製品からtitle_enを選択します」となります。 言語がスペイン語の場合、「製品からtitle_esを選択します」となります。

リストページIF LANGUAGEはスペイン語ですが、いくつかのレコード(言語が英語のときに入力されます)title_esは空であるという問題があります。

私は、両方をフェッチし、title_esが空であるかどうかをチェックし、title_enが表示されるかどうかをチェックするPHP関数を使用して処理することができます。

しかし、私はすべてのサイトが完全であり、この時点でクライアントは1タイトルが必要で、その他はオプションで、開始時には両方とも必要であるため、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(タイトル_ '。$ lang。' = ""、タイトル_ '。$ Otherlang。'、タイトル_ '。$ lang。') title(タイトル_ '。$ lang。' = ""、タイトル_ '。$ Otherlang。'、タイトル_ '。$ lang。')タイトルは私のために働く。ご協力ありがとうございます –

関連する問題