我知道如何在 PHP 中执行以下操作,但我想知道是否可以编写一个“纯”MySQL 查询来执行相同的操作:
每天晚上,我都有一个脚本生成主键 ID 的 CSV 文件,我需要从大型记录数据库中删除该文件。
是否可以编写一个 MySQL 查询来读取 CSV 文件,并删除每个主键值的记录?在伪代码中,大致如下:
READ 'CSVFILE.csv' AS FILE;
FOR EACH( VALUE IN FILE )
DELETE FROM myTable WHERE id = VALUE;
仅使用 MySQL 查询就可能实现这样的操作吗?
最佳答案
您可以通过使用两个查询并创建临时表来完成您的工作。
LOAD DATA INFILE
LOAD DATA INFILE 'CSVFILE.csv' INTO TABLE temp_tbl_name
FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;
DELETE FROM myTable WHERE id IN (SELECT toDeleteIdColumn FROM temp_tbl_name);
关于mysql - 是否可以编写一个 MySQL 查询来使用 CSV 中的标识值删除记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38079519/