Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment conserver l'ordre des champs à sélectionner lors de l'utilisation de $query->addExpression()

C'est la seule solution de contournement que j'ai trouvée pour conserver la commande. Utilisez une expression même si ce champ existe ou non. De cette façon, la commande est celle à laquelle vous vous attendiez :

if (TRUE) {
  // To keep the order of the fields we have to use this hacky way.
  // Use a function that will not modify the string
  $query->addExpression("IFNULL(table_name.field_name, '')", 'field_name_alias');
} else {
  $query->addExpression(':field', 'field_name_alias', array(':field' => NULL));
}