2011-07-06 73 views
0

我在mysql中有一張表,其中有兩個文件title_en,title_es 如果language是英語,那麼title_en是必需的,title_es是可選的。 如果語言爲西班牙語,則title_Es爲必填項,title_en爲可選項,同時接受表單數據。 注意:這是用於數據輸入。如果title_es爲空,MYsql想獲取title_en

最有可能的一個提交將是空的。

在PHP我寫動態查詢

$ SQL = '選擇標題_'。$ LANG。」從產品';

如果語言是英語,那麼它將是「從產品中選擇title_en」。 如果語言是西班牙語,那麼它將是「從產品中選擇title_es」。

對於列表頁面如果語言是西班牙語,我有一個問題,對於某些記錄(當語言是英語時輸入)title_es爲空。

我知道它可以通過提取兩者並使用PHP函數來處理,該函數將檢查title_es是否爲空,然後將顯示title_en。

但我想在Mysql中處理它,因爲所有網站都是完整的,此時客戶端需要1個標題和其他可選的,這在開始時是必需的。

請僅爲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

如果你不允許在田間地頭空值,那麼就替換爲「」

希望這有助於空!

+0

感謝您的快速響應我試過你的查詢,但它產生錯誤,,語法附近'從產品使用,任何如何在平均值,而我使用幾乎相同的邏輯構造,它適用於我。 SELECT *,if(title _'。$ lang。'=「」,title _'。$ Otherlang。',title _'。$ lang。'as title我不能使用Select If :: it產生錯誤,但是SELECT SOmeFields,如果(title _'。$ lang。'=「」,title _'。$ Otherlang。',title _'。$ lang。')as title WORKS for me。謝謝你的幫助 –