Size: a a a

2021 May 06

AS

Anton Samofal in Laravel Pro
$ids_to_delete = array_column($mes, 'id');
DB::table('dialogs')->whereIn('id', $ids_to_delete)->delete();
источник

AS

Anton Samofal in Laravel Pro
Кстати, вопрос. А такой вариант сначала же достанет модели, а только потом их удалит по одной?
источник

s

s4b0t in Laravel Pro
модели чего?
источник

AS

Anton Samofal in Laravel Pro
Окей, не модели, рекорды
источник

AS

Anton Samofal in Laravel Pro
Хотя ладно, к черту. У меня нет опыта работы с элеквент.
источник

s

s4b0t in Laravel Pro
один запрос достанет один удалит
источник

AS

Anton Samofal in Laravel Pro
Лишняя операция по извлечению из базы...
источник

ГА

Грачик Абдулошвили... in Laravel Pro
подождите) я же не могу в контроллере вот так писать-
DELETE FROM dialogs WHERE id IN ($ids_to_delete);
там
все же РНР а не sql )
источник

ГА

Грачик Абдулошвили... in Laravel Pro
$del = DB::delete("DELETE FROM dialogs WHERE id IN ($ids_to_delete)");
источник

ГА

Грачик Абдулошвили... in Laravel Pro
так наверное.
источник

AS

Anton Samofal in Laravel Pro
да
источник

AS

Anton Samofal in Laravel Pro
только тогда все же через имплойд ещё массив айдишек нужно прогнать, как я в первом варианте писал
источник

ГА

Грачик Абдулошвили... in Laravel Pro
ну то есть весь код получается в 3 строки.
источник

ГА

Грачик Абдулошвили... in Laravel Pro
$mes = DB::select("SELECT d.id FROM dialogs d LEFT JOIN messages m ON LEAST(d.user_1, d.user_2) = LEAST(m.sender_id, m.receiver_id) AND GREATEST(d.user_1, d.user_2) = GREATEST(m.sender_id, m.receiver_id) WHERE m.dialog_id IS NULL");
$ids_to_delete = implode(', ', array_column($mes, 'id'));
$del = DB::delete("DELETE FROM dialogs WHERE id IN ($ids_to_delete)");
источник

В

Владислав in Laravel Pro
Так а имплод зачем, через sql concat
источник

AS

Anton Samofal in Laravel Pro
А в чем разница между вот этим?
DB::delete("DELETE FROM dialogs WHERE id IN (1, 2)");

и
DB::table('dialogs')->whereIn('id', [1, 2])->delete();
источник

ГА

Грачик Абдулошвили... in Laravel Pro
DB::table('dialogs')->whereIn('id', $ids_to_delete)->delete();
источник

ГА

Грачик Абдулошвили... in Laravel Pro
вот так предлагаете?)
источник

ГА

Грачик Абдулошвили... in Laravel Pro
на кверибилдере типа
источник

AS

Anton Samofal in Laravel Pro
Та по идее и так и так будет нужный результат. Но мне самому интересна разница, че там под капотом
источник