使用 INNER JOIN 重写 UPDATE 查询而不使用 IN
我有一个查询:
UPDATE table_1 set field_1 = 1 where field_2 IN
(SELECT field_2 from table_2 where field_3 = 1)
但是,对于大型数据库(> 2000 毫秒),这需要很长时间。有没有办法使用 JOIN 重写此查询以避免使用 IN?
注意:field_1和field_3都有索引,但对查询没有帮助。这是使用MySQL。
I have a query:
UPDATE table_1 set field_1 = 1 where field_2 IN
(SELECT field_2 from table_2 where field_3 = 1)
However this takes a LONG time with a large database (>2000ms). Is there anway to re-write this query using JOINs to get away from using IN?
NOTE: There are indexes on field_1, and field_3 however it doesn't help the query. This is using MySQL.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
所需代码如下,
The required code is below,
测试了这段代码。
干杯!
Tested this code.
Cheers!