Concat уникальная или удалить дублирующую строку php / mysql

Мне нужно удалить дубликаты из строки таблицы.
Комбинировать 3 числа и генерировать все возможные комбинации, размещенные в .html форме
(будет 6, если все числа разные) Числа должны иметь по 6 цифр, например:
123, 234 и т. Д. …. Уменьшает количество комбинаций, если одно число совпадает с другим,
как 112.
Что я делал, до сих пор …
выделить номера и сохранить их в ряд:

        $cc=GetRow("SELECT numbers FROM table");
$n1=substr($cc, 0, 1);
$n2=substr($cc, 1, 1);
$n3=substr($cc, 2, 1);

//scrambling the numbers
$n1n2n3=$n1.$n2.$n3; //123 number stored
$n1n3n2=$n1.$n3.$n2; //132 number stored
$n2n1n3=$n2.$n1.$n3; //213 number stored
$n2n3n1=$n2.$n3.$n1; //231 number stored
$n3n1n2=$n3.$n1.$n2; //312 number stored
$n3n2n1=$n3.$n2.$n1; //321 number stored

$sql = sqlQuery("UPDATE table SET cc_concat = CONCAT_WS(',', '$n1n2n3', '$n1n3n2','$n2n1n3','$n2n3n1','$n3n1n2','$n3n2n1')");

But here´s the problem:
if the number is 112 will generate duplicates, only 3 are uniques:
$n1n2n3=$n1.$n2.$n3; //112 number stored
$n1n3n2=$n1.$n3.$n2; //121 number stored
$n2n1n3=$n2.$n1.$n3; //112 number stored
$n2n3n1=$n2.$n3.$n1; //121 number stored
$n3n1n2=$n3.$n1.$n2; //211 number stored
$n3n2n1=$n3.$n2.$n1; //211 number stored

Is there a way to update the table without the duplicates? or remove the duplicates
after update?

Спасибо!

0

Решение

Вы можете использовать массив для хранения комбинаций и воспользоваться функцией in_array (), чтобы убедиться, что у вас не будет дубликатов:

$combinations = array();
if ( !in_array( $n1n2n3, $combinations ) ) $combinations[] = $n1n2n3;
if ( !in_array( $n1n3n2, $combinations ) ) $combinations[] = $n1n3n2;
// Do the same for the rest

// Then you could easily concatenate the result set from PHP.
$cc_concat = implode( ',', $combinations );

// Finally update the database.
$sql = sqlQuery("UPDATE table SET cc_concat = '{$cc_concat}' ");

Нечто подобное должно решить проблему.

Кроме того, вы можете предпочесть использовать алгоритм для генерации комбинаций для вас из массива из трех цифр. Для такого алгоритма вы можете проверить эту тему:
Получить все перестановки массива PHP?

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector