Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So behalten Sie die Reihenfolge der auszuwählenden Felder bei, wenn Sie $query->addExpression() verwenden

Dies ist die einzige Problemumgehung, die ich gefunden habe, um die Reihenfolge beizubehalten. Verwenden Sie einen Ausdruck, auch wenn dieses Feld vorhanden ist oder nicht. Auf diese Weise ist die Reihenfolge die, die Sie erwarten würden:

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