2010-08-13 50 views
2

我用CONCAT讓我的標籤和主題,但如果故事沒有標籤或主題則導致空是空問題,如果該值在MySQL

WHERE 

    CONCAT(' ', table_stories.tags, ' ') 
    LIKE CONCAT('%', table_tags.tid, '%') 

    AND 

    CONCAT(' ', table_stories.associated, ' ') 
    LIKE CONCAT('%', table_topics.topicid, '%') 

正如你看到的,樣樣精除非我們有沒有標籤或相關

我用

table_stories.tags IS NULL OR 

,但問題依然存在,並不能與那些沒有標籤讀取故事或相關

故事

我該如何解決這個問題

回答

3

我沒有mysql方便測試,但COALESCE()可能是您正在尋找的功能。

這將返回第一個非空參數(見Documentation

所以

CONCAT(' ' , COALESCE(table_stories.associated, ' '), ' ') 

應該做的工作

+0

@Mac。我沒有發佈完整的代碼,因爲我沒有訪問mysql來測試它。但是在你的CONCAT方法中,可以通過調用COALESCE(column,'')來包裝任何可能爲空的列。這將確保如果值爲空,則可以獲得空間。 – 2010-08-13 07:13:24