Всем привет. Не силён в sql, но есть необходимость удалить все копии записей, кроме первой, где Name одинаковый.
Пробую сделать через:
DELETE FROM Login
WHERE Name NOT IN (SELECT max(Name) FROM Login GROUP BY Name HAVING
count(Name)>1)
Но получаю ошибку
You can't specify target table 'Login' for update in FROM clause
Пробовал сделать по аналогии с Как удалить записи SQL запросом с подзапросом?
Но ничего не вышло.
Приблизительно так:
DELETE FROM Login
WHERE Name NOT IN (
(SELECT tempT.Login
FROM (SELECT Name WHERE Name NOT IN (SELECT max(Name) FROM Login GROUP BY Name HAVING count(Name) > 1))
AS tempT)
)
Тут много вариантов перепробовал. Прошу помощи.
Для записей с одинаковым Name
оставляем только запись с максимальным id
:
DELETE t1.*
FROM Login t1
JOIN Login t2 USING (Name)
WHERE t1.id < t2.id
Нужен минимальный - поменять знак сравнения.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть запрос MySQL, выполняется долго, поэтому выполняю его в потокеИспользую для этого TThread
На сайте https://alisa-musicru/ есть блок Клипы с множеством Youtube ifarme что приводит к долгой загрузке сайта, и соответственно снижению рейтинга в поисковиках