Drupal 7 - Database API - Utiliser IS NULL et IS NOT NULL

Posté le Mercredi 16 décembre 2015 - 11:16
Dernière mise à jour le Vendredi 26 janvier 2018 - 18:35

Quand l'on fait des jointures on veut parfois récupérer les enregistrements dont un champ n'est pas renseigné ou au contraire que ceux qui le sont.

Pour cela en SQL on utilise le "IS NULL" ou "IS NOT NULL".

Pour faire la même chose avec la database API de Drupal 7 il faut utiliser les methodes isNull() et isNotNull().

Exemple avec isNull() :

$query = db_select('scald_atoms', 'a');
$query->fields('a', array('sid','title'));
$query->leftjoin('table_name','table_alias','table_alias.entity_id = a.sid');
$query->isNull('table_alias.mon_field_value');
$query->execute();
$query->fetchAllAssoc('nid');

Exemple avec isNotNull() :

$query = db_select('scald_atoms', 'a');
$query->fields('a', array('sid','title'));
$query->leftjoin('table_name','table_alias','table_alias.entity_id = a.sid');
$query->isNotNull('table_alias.mon_field_value');
$query->execute();
$query->fetchAllAssoc('nid');

 

 

Ajouter un commentaire

Ne sera pas publié

HTML restreint

  • Balises HTML autorisées : <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Les adresses de pages web et les adresses courriel se transforment en liens automatiquement.
CAPTCHA
Désolé, pour ça, mais c'est le seul moyen pour éviter le spam...