mysql - 分解一个非常长的 MySQL 查询是否更好?

标签 mysql performance

我最终得到了一个与此类似的非常庞大的查询:

 DELETE FROM compilation WHERE id = 1574 OR id = 1573 OR id = 1571 OR id = 1572 OR id = 1570 OR id = 1569 OR id = 1568 OR id = 1567 OR id = 1566 OR id = 1565 OR id = 1564 OR id = 1563 OR id = 1562 OR id = 1560 OR id = 1561 OR id = 1558 OR id = 1559 OR id = 1557 OR id = 1556 OR id = 1555 OR id = 1554

但我最近发现我有超过 2746 个“或”语句。这是一种不好的做法吗?我应该执行 foreach 循环并为每个连接删除一条记录吗?

在 MySQL 中每个查询是否有字符限制?

提前致谢。

最佳答案

使用IN()

DELETE FROM compilation 
WHERE id IN (1574,1573,1571)

或者如果您有一系列数字要删除,请使用 BETWEEN

DELETE FROM compilation 
WHERE id BETWEEN 1571 AND 1574

关于mysql - 分解一个非常长的 MySQL 查询是否更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20705228/

相关文章:

mysql - Mysql Group_concat 返回重复行

php - 使用 Ajax JQuery 和 PHP 将 .csv 文件导入 MySQL 的进度条

java - 开发基于 Java EE 的 Web 应用程序时如何提高生产力

python - 保留第一个非零元素,将所有其他元素设置为 0

java - 反转堆栈并添加到 ArrayList 的最有效方法

java - 使用 java.net.InetAddress.getLocalHost 查找主机名时线程进入阻塞状态

c# - Code First ASP.NET MVC 应用程序,未调用种子方法

mysql - 数据库值在特殊字符处被截断

php - 使用 PHP 更新多个 SQL 字段

c++ - openCV SurfFeatureDetector 是否在内部不必要地提取描述符?