Я использую последнюю версию XAMPP 2018 с MariaDB и Apache.
Я выполняю этот sql:
DELETE FROM customer_info
WHERE id NOT IN (SELECT MIN(id) FROM 'customer_info' GROUP BY 'paypal_id') ;
и получение этой ошибки
Error
SQL query:
DELETE FROM customer_info WHERE id NOT IN (SELECT MIN(id) FROM 'customer_info' GROUP BY 'paypal_id')
MySQL said: Documentation
#1093 - Table 'customer_info' is specified twice, both as a target for 'DELETE' and as a separate source for data
Я пробовал разные способы избавиться от дубликатов записей paypal_id, включая использование COUNT (*)> 1, которое также возвращает ошибку.
MySQL
не позволяет DELETE
и SELECT
в той же таблице.
вы можете попытаться использовать подзапрос в NOT IN
.
DELETE FROM customer_info
WHERE id NOT IN (
SELECT ID FROM (
SELECT MIN(id) Id
FROM 'customer_info'
GROUP BY 'paypal_id'
) t1
)
Если вы хотите удалить все, кроме первой строки или любого небольшого подмножества строк, это более быстрый способ:
CREATE TABLE new LIKE real;
INSERT INTO new
SELECT * FROM real WHERE ...; -- see below
RENAME TABLE real TO old,
new TO real;
DROP TABLE old;
В твоем случае:
SELECT * FROM real ORDER BY id LIMIT 1;