mysql脚本bash循环

标签 mysql bash

我有一个包含数字列表的 csv 文件,

479856252|1329148400996|1329148405406|1329148412444|0|6042292534|6042292534|14016487697|0|6
479856262|1329148401487|1329148405287|1329148412444|0|6136992594|6136992594|14016487697|0|6
479856272|1329148405124|1329148405124|1329148412470|0|8883398128||4016487697|0||P|0|7
479856282|1329148114930|1329148117966|1329148412502|0|8006564132|8779918502|7657954163|2609

当我执行 awk -F'|' '{print $1;}' file.csv > file2.csv

我得到以下表 ID

12345
67891
32234
22345
12345

我有一个 for 循环,它是这样工作的

for i in `cat file2.cvs`
do 
DELETE FROM TABLE1 WHERE ID = $i
done 

但是这会在我的盒子上造成高负载,我希望我可以拆分操作(对于 file2.csv 中的每 100 条记录)执行删除,然后休眠 1 秒钟,剩余的值继续进行,直到结束文件。

非常感谢您的帮助。

谢谢

最佳答案

用一个 SQL 命令完成:

DELETE FROM TABLE1 WHERE ID in (`cat file2.cvs | tr '\n' ','` -1)

末尾的 -1 是为了迎合结尾的逗号。如果您的输入文件在最后一行没有换行符,则您不需要 -1

关于mysql脚本bash循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9283921/

相关文章:

MySQL:开始日期和结束日期之间的日期的 IN 子句?

php - 导出csv时如何从列内容中转义分隔符

mysql - 正则表达式到 mysql

bash - 文本处理问题: remove rows where one column does not contain a particular value

bash - 各种 shell 配置文件之间有什么区别?

php - 带彩色按钮的 Laravel 查询

php - SQL语法错误,PHP MYSQL

mysql - 通过编辑 .bash_profile 改变 $PATH

bash - Gradle输出在VS Code的bash终端中未正确格式化

java - 运行具有外部依赖项的 Scala 脚本