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

Форум MySQL

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

 

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

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

тема: #1062 - Duplicate entry
 
 автор: Skyonex_   (22.08.2006 в 20:26)   письмо автору
 
 

Помогите плиз срочно :-( разрулить вот это:

Ошибка

SQL-запрос:

ALTER TABLE users DROP lastvisit

Ответ MySQL: Документация
#1062 - Duplicate entry '^ED`A~N`A`O'O"Ess' for key 2

Есть уникальный индекс по полям login и password. Видимо, как я понимаю, прошли одинаковые логины (уж не знаю как) :-( Как быть и найти таковые? ( Или может проблема еще в чем-то?

   
 
 автор: Trianon   (22.08.2006 в 20:34)   письмо автору
 
   для: Skyonex_   (22.08.2006 в 20:26)
 

потому что уникальный индекс имеет смысл только по полю логин. Но никак не по password
Искать

SELECT id, login, cnt FROM users JOIN 
(SELECT login, count(id) as cnt
GROUP by login 
HAVING cnt > 1) as t1 ON users.login =t1.login

и удалять.
Ну... или переименовывать.

   
 
 автор: Skyonex_   (22.08.2006 в 20:42)   письмо автору
 
   для: Trianon   (22.08.2006 в 20:34)
 

Увы времени сейчас быстро разобраться нет. Какая-то ошибка в Вашем коде :-( Не берет. А если индекс порубить? И потом его построить сугубо по login? А не по login|password?

   
 
 автор: cheops   (22.08.2006 в 20:35)   письмо автору
 
   для: Skyonex_   (22.08.2006 в 20:26)
 

Хм... а какова структура таблицы? Выполните пожалуйста оператор
SHOW CREATE TABLE users

   
 
 автор: Skyonex_   (22.08.2006 в 20:47)   письмо автору
 
   для: cheops   (22.08.2006 в 20:35)
 

create table users(
id int(11) not null,
login varchar(16),
password varchar(16),
....
Primary key (id),
UNIQUE KEY login_idx (login,password)
)

Примерно так.

   
 
 автор: Skyonex_   (22.08.2006 в 21:10)   письмо автору
 
   для: cheops   (22.08.2006 в 20:35)
 

В общем удалил уникальный индекс. Пытаюсь теперь его построить по полю Login. Ошибка duplicate entry. Подскажите, каким запросом можно найти дупы? Выше приведенный не работает. Пока сам попробую поколдовать.

   
 
 автор: Trianon   (22.08.2006 в 21:31)   письмо автору
 
   для: Skyonex_   (22.08.2006 в 21:10)
 

наверное из-за того, что я FROM users забыл во вложенном селекте.

SELECT id, login, cnt FROM users JOIN  
(SELECT login, count(id) as cnt FROM users
GROUP by login HAVING cnt > 1) as t1 ON users.login =t1.login

   
 
 автор: Skyonex_   (22.08.2006 в 22:46)   письмо автору
 
   для: Trianon   (22.08.2006 в 21:31)
 

Да вроде подставлял, все равно не пошло (((
Более топорным возможно вариантом выкрутился:

SELECT id,login, COUNT(*) as cnt FROM users GROUP BY login order by cnt DESC

   
 
 автор: Skyonex_   (22.08.2006 в 21:30)   письмо автору
 
   для: Skyonex_   (22.08.2006 в 20:26)
 

Всем спасибо. Вырулил.

   
Rambler's Top100
вверх

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