Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: MySQL: удалить дублирующие записи таблицы базы данных
 
 автор: Добрый кот   (09.04.2011 в 19:15)   письмо автору
 
 

Здравствуйте. помогите с таким вопросом: имеется поле со значением к примеру 1965, 1945, 1965. Как сделать чтобы в поле получилось 1965, 1945. То есть чтоб из одинаковых значений осталось только одно. Спасибо

  Ответить  
 
 автор: cheops   (10.04.2011 в 16:09)   письмо автору
 
   для: Добрый кот   (09.04.2011 в 19:15)
 

Возможно вас заинтересует тема по ссылке http://softtime.ru/forum/read.php?id_forum=3&id_theme=79267.

  Ответить  
 
 автор: Добрый кот   (10.04.2011 в 19:02)   письмо автору
 
   для: cheops   (10.04.2011 в 16:09)
 

Спасибо, но не то. У меня дубли в одном поле таблицы. В этом проблема

  Ответить  
 
 автор: cheops   (10.04.2011 в 23:25)   письмо автору
 
   для: Добрый кот   (10.04.2011 в 19:02)
 

Хм... а в чем сложность? С одним полем еще проще получится, нужно только модифицировать ON-условие.

  Ответить  
 
 автор: Добрый кот   (11.04.2011 в 22:32)   письмо автору
 
   для: cheops   (10.04.2011 в 23:25)
 

Я имел в виду
INSERT INTO cnt VALUES(6, 'Михаил', '66 ,44 , 66'); 
INSERT INTO cnt VALUES(7, 'Виктор', '22 ,11, 11 '); 
INSERT INTO cnt VALUES(8, 'Евгений', '55, 77, 55');
привести к виду
INSERT INTO cnt VALUES(6, 'Михаил', '66 ,44'); 
INSERT INTO cnt VALUES(7, 'Виктор', '22 ,11 '); 
INSERT INTO cnt VALUES(8, 'Евгений', '55, 77');
то есть изменения проводятся только внутри одного определенного поля

  Ответить  
 
 автор: cheops   (12.04.2011 в 07:17)   письмо автору
 
   для: Добрый кот   (11.04.2011 в 22:32)
 

MySQL очень плохо работает с ошибочно спроектированными данными, т.е. когда то что должно находиться в столбцах, находится через запятую или другой разделитель в строке. Тут проще будет обработать эти записи в прикладной программе. Или если эту задачу следует обязательно решать средствами MySQL, можно нормализовать таблицу cnt.

  Ответить  
 
 автор: Добрый кот   (12.04.2011 в 18:39)   письмо автору
 
   для: cheops   (12.04.2011 в 07:17)
 

Спасибо. буду думать как сделать в пхп

  Ответить  
 
 автор: cheops   (12.04.2011 в 18:45)   письмо автору
 
   для: Добрый кот   (12.04.2011 в 18:39)
 

В PHP-то как раз это решается очень просто, нужно разобрать строку на массив значений при помощи explode() (как вариант, preg_split(), вернее это даже лучше, так как у вас пробелы и запятые не регулярные), получить уникальные значения при помощи array_unique(), а потом опять собрать строку при помощи implode().

  Ответить  
 
 автор: Добрый кот   (12.04.2011 в 19:41)   письмо автору
 
   для: cheops   (12.04.2011 в 18:45)
 

Спасибо большое, буду пробовать :)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования