Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql粘贴一长串值_Php_Mysql - Fatal编程技术网

Php mysql粘贴一长串值

Php mysql粘贴一长串值,php,mysql,Php,Mysql,我有一个很大的数据库,有很多表和几千条记录 我已经做了一些Excel工作,以确定我想从一个大表中删除的一些记录/行,因为当我尝试在phpmyadmin中执行查询时,由于查询太大,表一直处于锁定状态 无论如何。。。。长话短说 我现在有一个1500条记录的列表,需要从我的一个表中删除 有没有办法将这1500个值粘贴到一个查询中,这样我就可以带回匹配的记录,一次将它们全部选中并删除它们 显然,我不想一次一个地手动执行此操作 所以我想到的问题是这样的: 查找与这些ID匹配的所有记录,其中ID= 从Ms

我有一个很大的数据库,有很多表和几千条记录

我已经做了一些Excel工作,以确定我想从一个大表中删除的一些记录/行,因为当我尝试在phpmyadmin中执行查询时,由于查询太大,表一直处于锁定状态

无论如何。。。。长话短说

我现在有一个1500条记录的列表,需要从我的一个表中删除

有没有办法将这1500个值粘贴到一个查询中,这样我就可以带回匹配的记录,一次将它们全部选中并删除它们

显然,我不想一次一个地手动执行此操作

所以我想到的问题是这样的:

查找与这些ID匹配的所有记录,其中ID= 从Ms Excel粘贴ID列表 返回的结果 可以选择所有行并删除 有什么建议吗


谢谢

只需在查询中使用关键字和值列表。比如:

Select Name
From Users
Where ID IN (1,2,3,4 .....) ;

实现这一点的方法不止一种

第一: 您可以直接将分隔ID的列表粘贴到where子句中

DELETE FROM tablename WHERE ID IN (1,2,3,4);
如果您得到错误“数据包太大”,您可以增加

可以向MySQL或从MySQL传输的最大数据包 5.0服务器或客户端为1GB

第二: 您可以将Excel文件导出为csv文件,并将数据加载到临时表中,然后使用tmp表作为参考从表中删除

LOAD DATA INFILE 'X:\filename.csv'
    INTO TABLE tmptable
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
    LINES TERMINATED BY '\n';

DELETE t1 
    FROM tablename t1
    JOIN tmptable t2 ON t1.ID = t2.ID;
参考:


不要忘记删除tmp表。

粘贴逗号分隔的值,即5、6、7、8、9、11、23、44、55、56、57、58中的WHERE ID。足够粗糙,同样有用。查询太大?然后增加max_allowed_packet您还可以构造一个“临时”表,将值插入其中,然后将其连接到主表1064-您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以了解在“WHERE post_title inca you post the sql you trusted use?”附近使用的正确语法。每个术语上都有一个错误,但有一些遗漏:当我尝试运行该查询时,post_title在其中显示1064-您的sql语法有一个错误;查看与您的MySQL服务器版本对应的手册,以了解可在“WHERE post_title”附近使用的正确语法。请在没有ID列表的情况下输入完整的语法