Найти повторяющиеся записи из таблицы одну за другой в codeigniter - PullRequest
0 голосов
/ 13 сентября 2018

Я хочу найти дубликаты записей в таблице.

 public function duplicate_records() {
       $sql = " select * from tbloptions where name in (select name from tbloptions group by name having COUNT(*)>1)";
        $result = $this->db->query($sql);
        $row = $result->result();
        echo '<pre>';
        print_r($row);
    }

Я написал приведенный выше запрос и получаю следующий вывод: -

Array
(
    [0] => stdClass Object
        (
            [id] => 1
            [name] => dateformat
            [value] => d-m-Y|%d-%m-%Y
            [autoload] => 1
        )

    [1] => stdClass Object
        (
            [id] => 2
            [name] => companyname
            [value] => 01Crypto.com
            [autoload] => 1
        )

    [2] => stdClass Object
        (
            [id] => 316
            [name] => dateformat
            [value] => d-m-Y|%d-%m-%Y
            [autoload] => 1
        )

    [3] => stdClass Object
        (
            [id] => 317
            [name] => dateformat
            [value] => d-m-Y|%d-%m-%Y
            [autoload] => 1
        )

    [4] => stdClass Object
        (
            [id] => 318
            [name] => companyname
            [value] => 01Crypto.com
            [autoload] => 1
        )

)

Итак, на выходе [name] => dateformat приходит 3 раза, а [name] => companyname - 2раз.

Редактировать: -

Я хочу следующий вывод: -

[0] => stdClass Object
        (
            [id] => 1
            [name] => dateformat
            [value] => d-m-Y|%d-%m-%Y
            [autoload] => 1
        )
[2] => stdClass Object
        (
            [id] => 316
            [name] => dateformat
            [value] => d-m-Y|%d-%m-%Y
            [autoload] => 1
        )
[3] => stdClass Object
        (
            [id] => 317
            [name] => dateformat
            [value] => d-m-Y|%d-%m-%Y
            [autoload] => 1
        )
[1] => stdClass Object
        (
            [id] => 2
            [name] => companyname
            [value] => 01Crypto.com
            [autoload] => 1
        )
[4] => stdClass Object
        (
            [id] => 318
            [name] => companyname
            [value] => 01Crypto.com
            [autoload] => 1
        )

любая помощь будет оценена.

1 Ответ

0 голосов
/ 13 сентября 2018

Насколько я понимаю, вам нужен ответ что-то такое.

Array (
    [0] => stdClass Object
        (
            [id] => 2
            [name] => companyname
            [value] => 01Crypto.com
            [autoload] => 1
        )
    [1] => stdClass Object
        (
            [id] => 318
            [name] => companyname
            [value] => 01Crypto.com
            [autoload] => 1
        )
    [2] => stdClass Object
        (
            [id] => 1
            [name] => dateformat
            [value] => d-m-Y|%d-%m-%Y
            [autoload] => 1
        )
    [3] => stdClass Object
        (
            [id] => 316
            [name] => dateformat
            [value] => d-m-Y|%d-%m-%Y
            [autoload] => 1
        )
    [4] => stdClass Object
        (
            [id] => 317
            [name] => dateformat
            [value] => d-m-Y|%d-%m-%Y
            [autoload] => 1
        )
)

Если я прав, то вы можете попробовать ниже приведенный пример.Это поможет вам.

public function duplicate_records() {
   $sql = " select *, GROUP_CONCAT(id) as ids from tbloptions where name in (select name from tbloptions group by name having COUNT(*)>1) group by name order by name";
    $result = $this->db->query($sql);
    $row = $result->result();
    echo '<pre>';
    print_r($row);
}

Или, если я ошибаюсь, поделитесь, пожалуйста, тем, что вам нужно.Я обновлю свой ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...