- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть в таблице поле по которому нужно выбрать записи с одинаковыми столбцами. Подскажите как это грамотно сделать.
Пишу в пхпмайадмин запрос: select r1.* from regions r1 where exists (select * from regions r2 where r2.id <> r1.id and r2.country = r1.country)
Но подвисает пхпмайадмин. Пишет: Ошибка при обработке запроса Код ошибки: 504 Текст ошибки: Gateway Time-out.
пробовал писать пхп скрипт. Но тоже получаю ошибку 500 Internal Server Error.
В логах пишет:
1 mod_fcgid: read data timeout in 40 seconds
2 Premature end of script headers: test.php
Таблица небольшая - 10,5 тыс записей.
Подскажите как выбрать одинаковые записи?
возможно способ написанный на коленке...
запрос: select count(`id`) AS `kolich`, * from `regions` GROUP BY `country`
потом через PHP отсеять все у кого `kolich` = 1...
получите в массиве все `country` которые не уникальны..
потом делаете запрос по ним и получаете все записи которые вам нужны...
как-то так select * from `regions` where `country` in (...)
Есть еще SELECT DISTINCT
Для тестов проще всего (при недоступности нормальной человеческой консоли) ограничивать ваши запросы чтобы они не превышали лимит php по времени. Просто добавьте LIMIT 100 к примеру во время конструирования запроса.
Потом когда составите нормальный быстрый запрос уберете.
запрос: select count(`id`) AS `kolich`, * from `regions` GROUP BY `country`
потом через PHP отсеять все у кого `kolich` = 1...
получите в массиве все `country` которые не уникальны..
потом делаете запрос по ним и получаете все записи которые вам нужны...
как-то так select * from `regions` where `country` in (...)
угу, тоже самое, только средсвами sql:
попробовал на своей табличке с 31тыс записей: Запрос занял 0.0421 сек.
SELECT * FROM regions GROUP BY country HAVING COUNT(*) > 1