За последние 24 часа нас посетили 17853 программиста и 1654 робота. Сейчас ищут 1615 программистов ...

Удаление повторяющихся строк

Тема в разделе "PHP и базы данных", создана пользователем AleksK, 11 июн 2018.

  1. AleksK

    AleksK Новичок

    С нами с:
    11 июн 2018
    Сообщения:
    2
    Симпатии:
    0
    Всем привет друзья. Нужна ваша помощь в решении одной проблемы. На хостинге есть файл представляющий собой форму:
    Сравнивать нужно только первый столбец (во втором и третьем может быть совершенно любой текст). И вопрос заключается, как можно сделать удаление строк, в которых совпадают первые столбцы?
     
  2. username

    username Новичок

    С нами с:
    6 июл 2017
    Сообщения:
    223
    Симпатии:
    17
    можно сделать скрипт, который перенесёт строки в бд, даст каждой строке id и дальше в phpmyadmin выполнить запрос

    Код (Text):
    1. Select t2.id from tablica t1 left join tablica t2 ON t1.stolbec1=t2.stolbec1 AND t1.id!=t2.id
    чтобы посмотреть, есть такие строки или их нет, а дальше в phpmyadmin можно воспользоваться поиском и найти нужную строку, отредактировать, при необходимости удалить, или сразу все удалить

    Код (Text):
    1. delete from tablica where id IN (Select t2.id from tablica t1 left join tablica t2 ON t1.stolbec1=t2.stolbec1 AND t1.id!=t2.id)
     
  3. Emilien

    Emilien Активный пользователь

    С нами с:
    30 июн 2016
    Сообщения:
    246
    Симпатии:
    156
    PHP:
    1. $array  = [];
    2. $buffer = '';
    3.  
    4. foreach (file('input.txt') as $line) {
    5.     $key = str_getcsv($line, "|")[0];
    6.     if (!isset($array[$key])) {
    7.         $array[$key] = 1;
    8.         $buffer .= $line;
    9.     }
    10. }
    11.  
    12. file_put_contents('output.txt', $buffer);