Mysql
 sql >> Database >  >> RDS >> Mysql

Come preservare l'ordine dei campi da selezionare quando si utilizza $query->addExpression()

Questa è l'unica soluzione che ho trovato per mantenere l'ordine. Utilizzare un'espressione anche se quel campo esiste o meno. In questo modo l'ordine è quello che ti aspetteresti:

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