|
|
|
Подскажите, как убрать дубли
|
|||
|---|---|---|---|
|
#18+
Приветствую всех! Подскажите пожалуйста, кто знает, как можно sql-запросом убрать дубли в таблице(данных много). Ситуация такая: c1---------------------c2 tovar_id------------- 78,79,80 ,85,86,87,88,89, 78,79,80 в числовой колонке с2 повторяются 78,79,80, а должны значения в одной строке быть все разными. Как можно удалить дубли значений? Заранее спасибо... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2013, 07:03:42 |
|
||
|
Подскажите, как убрать дубли
|
|||
|---|---|---|---|
|
#18+
Это одна запись такая? с CSv в поле? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2013, 22:42:42 |
|
||
|
Подскажите, как убрать дубли
|
|||
|---|---|---|---|
|
#18+
да, это одна строка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2013, 00:50:36 |
|
||
|
Подскажите, как убрать дубли
|
|||
|---|---|---|---|
|
#18+
Ну а раз метод хранения презирает любые установки DB - то и эту задачу надо решать вовсе не средствами SQL. Или нормализовать этот бред - дубли при этом сами сдохнут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2013, 01:17:45 |
|
||
|
Подскажите, как убрать дубли
|
|||
|---|---|---|---|
|
#18+
Извиняюсь за дилетантство, но честно говоря не совсем понял о чем Вы в самом начале - "Ну а раз метод хранения презирает любые установки DB..." В C2 сам интервал записанных данных(чисел) от 70 до 100, может можно их как-то перечислить все в sql-запросе, что-бы просканировать С2 и удалить все значения которые будут повторяться в одной строке? (Возможно я сейчас полную ересь написал, сори)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2013, 02:02:22 |
|
||
|
Подскажите, как убрать дубли
|
|||
|---|---|---|---|
|
#18+
epicfruitИзвиняюсь за дилетантство, но честно говоря не совсем понял о чем Вы в самом начале - "Ну а раз метод хранения презирает любые установки DB..." Он о первой нормальной форме . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2013, 03:01:45 |
|
||
|
Подскажите, как убрать дубли
|
|||
|---|---|---|---|
|
#18+
epicfruitПриветствую всех! Подскажите пожалуйста, кто знает, как можно sql-запросом убрать дубли в таблице(данных много). Ситуация такая: c1---------------------c2 tovar_id------------- 78,79,80 ,85,86,87,88,89, 78,79,80 в числовой колонке с2 повторяются 78,79,80, а должны значения в одной строке быть все разными. Как можно удалить дубли значений? Заранее спасибо... если у вас есть какой-нибудь нормальный язык програмирования (жава, ц#, пхп...) на входе этих строчек и на выходе, то зачишайте данные в них. Если хочется делать в СКЛ, и делать это правильно, то нормализация ваш друг (как уже отметили выше) Если очень хочется в СКЛ, вам лень делать правильно, то способ есть -- сложный, и через неестетичную часть тела. Крайне не советую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2013, 03:25:41 |
|
||
|
Подскажите, как убрать дубли
|
|||
|---|---|---|---|
|
#18+
Понял, MasterZiv , спасибо за ссылку... Ну, что мне дали, с тем и работаю. Там уже не один скрипт подвязан к этой таблице, поэтому поздновато/сложно что либо менять.. Спасибо что разъяснили!!! Помогаете уже ни первый раз!!)) Буду всю БД тогда заново компилировать.. Просто думал, что можно это как-то решить "меньшей кровью" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2013, 03:40:14 |
|
||
|
Подскажите, как убрать дубли
|
|||
|---|---|---|---|
|
#18+
epicfruit, можно. создаёте таблицу временную - для первой нормальной велью=одно число из С2, айди связаной записи(с1) - оба поля составляют первичный ключ и пишете запроса 2 1)из текущей делает выборку перовго числа из с2 и это дело летит в временую с условием on duplicate ignore 2)апдейт текущей - срезает первое число с запятой. ну и ганяете их в цикле пока у всех записей с2 не обнулиться. а вообще для мускла можно регулярки прикрутить, но не уверен что так быстрее получиться. хотя ващето вопрос - а зачем удалять дубли??? я так понимаю что и сдублями все работает. и раз дубли не нужны, я так понимаю процедура изменения этого поля криво написана - не уничтожает дубли. Так может тогда просто это самое дело и поправить, что бы впредь, если какаято запись редактируеться, то дубли уничтожались. для пхп str= explode(',',array_keys(array_flip(implode(','str)))); из строки получаем масив, меняем ключи и значения местами(врезультате дубли схлопываються), получаем масив ключей, клеим в строку через запятую ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2013, 01:58:23 |
|
||
|
Подскажите, как убрать дубли
|
|||
|---|---|---|---|
|
#18+
epicfruit БД тогда заново компилировать Это как? О_о ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2013, 06:11:10 |
|
||
|
Подскажите, как убрать дубли
|
|||
|---|---|---|---|
|
#18+
epicfruitНу, что мне дали, с тем и работаю. Там уже не один скрипт подвязан к этой таблице, поэтому поздновато/сложно что либо менять.. Ну тогда пишите пользовательскую функцию, которая примет CSV-строку, и возвратит её же, но почищенную от дублей. Т.е. что-то типа (draft): Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Ну и тупо Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2013, 09:15:20 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38475111&tid=1835666]: |
0ms |
get settings: |
6ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 316ms |

| 0 / 0 |
