如何删除 SQL 中的多个 MySql Apache table 行?
How can I delete multiple MySql Apache table rows in SQL?
我在 MariaDB 和 Apache 中使用最新版本的 XAMPP 2018。
我正在执行这个 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 这也是 returns 一个错误。
MySQL
不允许您在同一个 table.
中 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;
我在 MariaDB 和 Apache 中使用最新版本的 XAMPP 2018。
我正在执行这个 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 这也是 returns 一个错误。
MySQL
不允许您在同一个 table.
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;