- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте!
Есть таблица зарегистрированных пользователей. Изначально не продумана нормальнро - как результат через время вылезла проблема дублирования логинов.
Структура такая:
id (int) | login (varchar) | pass (varchar) | activation (int)
последняя колонка "activation" - отметка об активации пользователя.
в таблице:
1 | user1 | pass | 1
2 | user1 | pass | 0
3 | user2 | pass | 0
4 | user2 | pass | 1
Хочу добавить UNIQUE Key на колонку login:
Проблема в том, что конструкция ALTER IGNORE оставляет только те строки, значения которых найдены первыми.
Т.е. в результате получается:
1 | user1 | pass | 1
3 | user2 | pass | 0
Можно ли каким-то образом явно указать MySQL, что при нахождении дублирующих значений в колонке приоритет - оставить ту строку, где activation=1?
удалите дубликаты через delete а не через создание индекса. буквально намедни тут тема пробегала
Если одним запросом выбрать, то
SELECT * FROM (
SELECT *
FROM users
ORDER BY login ASC, activation DESC
) AS ordered_users
GROUP BY login
Надо проверить на синтаксис
---------- Добавлено 01.03.2012 в 21:49 ----------
Т.е. можно скопировать выборку в другую таблицу, эту очистить и назад перекинуть