2010-08-13 4 views
2

j'ai utilisé CONCAT pour obtenir mes tags et sujets, mais si l'histoire n'a pas d'étiquette ou d'un sujet alors résultat est videà l'aide CONCAT si la valeur est nulle dans une base MySQL

WHERE 

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

    AND 

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

comme vous le voyez, tout va bien, sauf nous avons histoire qui n'a pas d'étiquette ou associée

i utilisé

table_stories.tags IS NULL OR 

mais le problème existe toujours et ne peux pas des histoires sans aille chercher tag ou associé

comment puis-je résoudre ce problème

Répondre

3

Je n'ai pas mysql à portée de main mais COALESCE() est probablement la fonction que vous recherchez.

Cela renvoie le premier argument non nul (Voir Documentation)

Alors

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

devrait faire le travail

+0

@Mac. Je n'ai pas envoyé de code complet car je n'ai pas accès à mysql pour le tester. Mais dans vos méthodes CONCAT, enveloppez toutes les colonnes qui pourraient être nulles avec un appel à COALESCE (colonne, ''). Cela garantira que si la valeur est nulle, vous obtenez un espace à la place. –

Questions connexes