2010-08-13 2 views
2

я использовал CONCAT, чтобы мои теги и темы, но если история не имеет тег или тему, то результат пустпроблема при использовании CONCAT, если значение Null в 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 (столбец, ''). Это гарантирует, что если значение равно null, вы получите вместо него пробел. –

Смежные вопросы