- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как удалить плохие SEO-ссылки и очистить ссылочную массу сайта
Применяем отклонение ссылок
Сервис Rookee
В 2023 году Google заблокировал более 170 млн фальшивых отзывов на Картах
Это на 45% больше, чем в 2022 году
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Помогите изменить запрос
WHERE (
fullname, section_id
)
IN (
SELECT fullname, section_id
FROM `xyfq1_items`
GROUP BY fullname, section_id
HAVING COUNT( fullname ) > 1
)
ORDER BY fullname, section_id
Нашел я дубли, как теперь удалить те из них, у которых поле hits = 0 ?
Нельзя одним запросом удалять из таблицы из которой выбираешь.
Если очень хочется все сделать внутри мускула, создавайте временную таблицу, копируйте нужные данные туда и удаляйте по ней.
Нельзя одним запросом удалять из таблицы из которой выбираешь.
Где такое написано?
dma84, #1093 - Table 'xyfq1_items' is specified twice, both as a target for 'DELETE' and as a separate source for data
а как правильно через временную?
dma84, #1093 - Table 'xyfq1_items' is specified twice, both as a target for 'DELETE' and as a separate source for data
Действительно, стоило на 2 месяца забыть про мускул и ударил лицом в грязь.
Есть грязный хак для этого дела, почитать можно здесь.
Вижу что нужно добавить подзапрос SELECT * FROM и какое то AS p но не пойму в какое место это присобачить на моем примере
Так?
WHERE `id` IN
SELECT * FROM (
(
SELECT `id` FROM `xyfq1_items`
WHERE (fullname, section_id)
IN
(
SELECT fullname, section_id
FROM `xyfq1_items`
GROUP BY fullname, section_id
HAVING COUNT( fullname ) > 1
)
) AND
`hits` = 0;
) AS p
Вижу что нужно добавить подзапрос SELECT * FROM и какое то AS p но не пойму в какое место это присобачить на моем примере
Так?
AS p - это псевдоним.
В примере по ссылке 1 вложенный подзапрос на ту же таблицу, а в вашем случае - 2. Не знаю, будет ли такое работать.
Пробую через временную, но где то ошибаюсь в синтаксисе... помогите плиз
SELECT * FROM `xyfq1_items`
WHERE (
fullname, section_id
)
IN (
SELECT fullname, section_id
FROM `xyfq1_items`
GROUP BY fullname, section_id
HAVING COUNT( fullname ) > 1
)
and hits = 0
);
DELETE FROM xyfq1_items
WHERE id IN (SELECT * FROM t_temp);
База ругается - #1241 - Операнд должен содержать 1 колонок
WHERE id IN (SELECT `id` FROM t_temp);
Найдено 3 ошибок при анализе.
Ожидалась открывающая скобка. (near "as" at position 32)
Ожидалось объявление, по крайней мере, одного столбца. (near " " at position 31)
Неожиданный токен. (near ")" at position 250)
SQL запрос: Документация
CREATE TEMPORARY TABLE `t_temp` as ( SELECT * FROM `xyfq1_items` WHERE ( fullname, section_id ) IN ( SELECT fullname, section_id FROM `xyfq1_items` GROUP BY fullname, section_id HAVING COUNT( fullname ) > 1 ) and hits = 0 )
Ответ MySQL: Документация
#1205 - Таймаут ожидания блокировки истек; попробуйте перезапустить транзакцию