Size: a a a

2021 August 20

SG

Sergey Gerasimov in Laravel Pro
select('*')->addSelect...
источник

EG

Egor Gruzdev in Laravel Pro
так в orderBy DB::raw и вставляйте, зачем вам это в select?
источник

SG

Sergey Gerasimov in Laravel Pro
Да у меня под рукой нет, где-то видел, вот и предложил
источник

SG

Sergey Gerasimov in Laravel Pro
Я думал ему нужно сортировать сначала по дате чтения, потом по дате создания
источник

S

Shotty in Laravel Pro
непрочитанные всё равно остаются внизу.
источник

S

Shotty in Laravel Pro
Мне нужно сделать так:

чтобы непрочитанные всегда были первыми, а дальше уже по дате создания
источник

ДК

Дмитрий Кожанов... in Laravel Pro
Значит махни на DESC
источник

SG

Sergey Gerasimov in Laravel Pro
А среди непрочитанных как?
источник

S

Shotty in Laravel Pro
да, но это не решает проблему, чтобы сортировать по дате создания, прочитанные дальше идут рандомно по дате.
источник

S

Shotty in Laravel Pro
Если read_at - null, непрочитанные. должны быть первыми, дальше по дате создания.
источник

SG

Sergey Gerasimov in Laravel Pro
Он тебе про desc на unread
источник

SG

Sergey Gerasimov in Laravel Pro
Ну вот у тебя 100 непрочитанных. Их нужно сортировать?
источник

S

Shotty in Laravel Pro
да, так уже и стоит, но проблема в целом не решилась, такая же ситуация, непрочитанные первые - прочитанные рандомные даты.
источник

S

Shotty in Laravel Pro
они должны быть всегда первыми.
источник

SG

Sergey Gerasimov in Laravel Pro
Ой, прочитанных то есть
источник

S

Shotty in Laravel Pro
а дальше, которые прочитанные - идут по дате создания
источник

ДК

Дмитрий Кожанов... in Laravel Pro
Да божеш ты мой. Разжуй да в рот положи...

select('*')
->addSelect(\DB::raw('(read_at IS NULL) as unread'))
->orderBy('unread', 'DESC')
->orderBy('created_at', 'DESC')
источник

S

Shotty in Laravel Pro
работает! спасибо.

А где можно об этом почитать?

Оно добавляет грубо говоря поле unread которые по аналогии read_at = null. и потом делает по нему сортировку?
источник

EG

Egor Gruzdev in Laravel Pro
select('*')
->orderBy(\DB::raw('read_at IS NULL'), 'DESC')
->orderBy('created_at', 'DESC')

мне кажется более очевидно для понимания, чем через addSelect
источник

ДК

Дмитрий Кожанов... in Laravel Pro
А теперь сделай  explain и посмотри что быстрее
источник