За последние 24 часа нас посетили 20049 программистов и 1001 робот. Сейчас ищут 312 программистов ...

Составить sql запрос для удаления дубликатов

Тема в разделе "MySQL", создана пользователем ewerost, 7 июл 2022.

Метки:
  1. ewerost

    ewerost Новичок

    С нами с:
    19 фев 2022
    Сообщения:
    7
    Симпатии:
    0
    Здраствуйте
    У меня есть таблица с названием products, в ней есть дубликаты строк.
    Мне необходимо удалить все дубли по столбцу title
    При этом удалить нужно удалить все дубли, кроме одного значения, где значение поля price минимальноe.
    Грубо говоря, к примеру есть такие значения
    Cтрока 1: title=Название 1, price = 5
    Cтрока 2: title=Название 1, price = 4
    Cтрока 3: title=Название 1, price = 3
    Cтрока 4: title=Название 1, price = 2
    Cтрока 5: title=Название 1, price = 1


    После sql запроса в базе должна остаться только 1 строка:
    Cтрока 5: title=Название 1, price = 1
    С наименьшей ценой, остальные дубли нужно удалить.

    PS: фреймворк Yii2
    Буду рад если кто то поможет.
     
  2. dbalor

    dbalor Новичок

    С нами с:
    15 июл 2022
    Сообщения:
    2
    Симпатии:
    0
    Если у тебя есть какой-то айдишник то примерно так(если нет добавь какое нибудь автоинкрементное поле):
    Код (Text):
    1. delete table
    2. where id not in
    3. (
    4.     select min(id) as min_id
    5.     from table
    6.     group by title,price
    7. )