Dmitry
Dmitry
Иначе в ручную каждую связь проверять, но в таком случае не понятно зачем тебе ключи
Дмитро
Мне нельзя удалять, если есть связанные
Дмитро
я вижу с наскоку - попробовать подгрузить все релейшены и проверить, второй - удалить транзакцией с откатом
Дмитро
оба так себе
Dmitry
Но прям ВСЕ, это как то странно звучит
Дмитро
та че? делаешь удаление с транзакцией, если сама сфейлилиась - нельзя удалять, если ты сфейлил - можно
Dmitry
Дмитро
У меня есть записи, которые на фронте можно нажать удалить. И если у нее есть связи, то надо показать, что удалять ее нельзя
Dmitry
Maksim (Ellrion)
Дмитро
окей
Daniil
Daniil
она эксепшн бросит?
Daniil
или в автоматическом режиме не прокатит такое, только в ручном?
Pavel Burak
Подскажите пожалуйста, как в laravel выбрать из бд все записи где в столбце name одинаковые значения
Daniil
$ids = DB::table('table')->groupBy('name') ->get(['id', 'name'])->pluck('id');
$rows = DB::table('table')->whereIn('id', $ids)->get();
Vladimir
Daniil
на ум первое что пришло
Daniil
а зачем?
Vladimir
ну сейчас попадут даже те записи, у name которых только одно упоминание
Pavel Burak
Спасибо
Дмитро
Дмитро
ну я так думаю
Daniil
ну не оч решение честно говоря
Daniil
наверное, если следить надо, то надо вручную транзакцией управлять
Дмитро
ну ты через колбек?
Daniil
да
Daniil
просто я ненавижу callback-hell
Дмитро
ну тогда тебе DB::transaction() вернет то, что ты вернешь в колбеке
Дмитро
Daniil
так, а если транзакция провалилась, то?
Дмитро
ну даааааа
Дмитро
Дмитро
ты вообще в метод заходил?)
Daniil
не, впадлу было
Daniil
сразу сюда спросил
Daniil
прям честно говорю)
Daniil
обычно лезу в метод
Daniil
а тут резко лень стало
Дмитро
Daniil
mr.
mr.
Ivan 🏴☠️
конвертить в .ogg
как оказалось не просто в ogg а в opus ) ffmpeg -i $mp3 -acodec libopus $opus
invariance
Ребят помогите
invariance
короче задача
invariance
нужно удалить повторяющиеся записи, кроме одной
invariance
по одному полю
invariance
ну кроме последней т.е. все потереть
Пантелеев
я бы массив айдишников отдал на удаление, без одного элемента
Пантелеев
или ты одним запросом хочешь?
invariance
одним желательно)
Пантелеев
ну тогда ток с подзапрсоами или джоин таблицы сам с собой
mr.
invariance
pgsql
mr.
Найс, щас кину запрос
mr.
Там через оконные функции вообще изи
Maksim (Ellrion)
у меня есть скоуп для нахождения последних записей по параметру
http://joxi.ru/82QGe6I1aL6ord
mr.
pgsql
DELETE FROM tablename
WHERE id IN (SELECT id
FROM (SELECT id,
ROW_NUMBER() OVER (partition BY ПОЛЕ_ПО_КОТОРОМУ_НУЖНО ORDER BY id) AS rnum
FROM tablename) t
WHERE t.rnum > 1);
mr.
Только сначала выполни select чтобы убедиться, что нужные записи дропаешь.
Пантелеев
Пантелеев
я просто не шар что такое оконные фции
mr.
а в чем отличие от обычного подзапрсоа?
Лень трахаться с подзапросами.
Оконная функция выполняет вычисления для набора строк, некоторым образом связанных с текущей строкой. Можно сравнить её с агрегатной функцией, но, в отличие от обычной агрегатной функции, при использовании оконной функции несколько строк не группируются в одну, а продолжают существовать отдельно. Внутри же, оконная функция, как и агрегатная, может обращаться не только к текущей строке результата запроса.
Пантелеев
так запрос то по факту выглдит сложнее чем на обычных подзапросах
mr.
Т.е. ты вибираешь партицию по полю, потом смотрешь ROW_NUMBER - номер строки в этой партиции, и для строк у которых ROW_NUMBER более 1 - удаляешь.
mr.
mr.
Вам шашечки или ехать?
mr.
Оконные функции работают быстро
mr.
Т.к. работаю с этими же кортежами
Antonio
Ну и кто станет 1000 пользователем?
Arthur'); DROP TABLE Users;--
торт в лицо тысячному
Николай
никто скорее стоит 3 знака в отображении количества мемберов
Дима
@doktorgradus Поздравляю 1000ник )
Евгений
приз будет?
Дима
Antonio
🎂
Antonio
😃