@Offereight

Как в Yii2 построить так SQL запрос, что бы была сортировка просто по заполненности поля, а не по содержимому в нем?

Доброго времени суток.
Как построить запрос в модели Yii, что бы проверялось заполненность поля в таблице? Сейчас в таблице хранится количество товаров, необходимо в запросе узнать просто что это количество не равно 0 и произвести сортировку так, что бы сначала шли товары, у которых количество не равно 0, а затем остальные. Сортировка просто по количеству товаров не подходит, так как кроме этой сортировки есть еще 2 (по цене и по еще одному полю).
  • Вопрос задан
  • 57 просмотров
Пригласить эксперта
Ответы на вопрос 3
  • webinar
    @webinar
    Учим yii2: https://youtu.be/-WRMlGHLgRg
    2 запроса и union. Выбрали все что не 0 с одной сортировкой, выбрали все что 0 без сортировки, объеденили
    $query1 = Product::find()->andWhere(['>','price',0])->orderBy('price');
    $query2 = Product::find()->andWhere(['price'=>0]);
    $query1->union($query2);
    $query1->all(); // или скормили дата провайдеру
    Ответ написан
  • kimono
    @kimono
    Yii2 - developer
    Сортировка просто по количеству товаров не подходит, так как кроме этой сортировки есть еще 2 (по цене и по еще одному полю).

    Так вы укажите первой сортировку товара именно по количеству, а дальше уже по цене и т.д. Это вопрос больше к самому запросу SQL, чем к Yii.
    В Yii примерно так:
    $products = Product::find()->where([/**/])->orderBy(['count' => SORT_DESC, 'price' => SORT_DESC, 'eshe_odno_pole' => SORT_DESC])->all();
    Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы