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');

 

Aller plus loin ?

Ajouter un commentaire

Ne sera pas publié

Désolé, pour ça, mais c'est le seul moyen pour éviter le spam...