Đây là cách giải quyết duy nhất tôi tìm thấy để giữ trật tự. Sử dụng một biểu thức ngay cả khi trường đó tồn tại hay không. Bằng cách đó, đơn đặt hàng là đơn đặt hàng mà bạn mong đợi:
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));
}