我最终得到了一个与此类似的非常庞大的查询:
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/