mysql更新

toe95027  于 2021-06-21  发布在  Mysql
关注(0)|答案(0)|浏览(300)

我只是想验证这是否是使用此特定更新查询的最佳方法。
使用具有多个in子句的更新,如下所示:

UPDATE table_main
SET complete = 'Y',
WHERE booking IN ('book123', 'book124', 'book125') 
AND quote IN ('quote1', 'quote2', 'quote3') 
AND line IN ('line1', 'line2', 'line3')

表如下所示:

| BOOKING | QUOTE | LINE | COMPLETE |
-------------------------------------
|book123  |quote1 |line1 |    N     |
-------------------------------------
|book124  |quote2 |line2 |    N     |
-------------------------------------
|book125  |quote3 |line3 |    N     |
-------------------------------------
|book123  |quote1 |line4 |    N     |

为什么没有id栏,我不知道。预订和报价有主键。如果你注意到在表中,有两个条目的第123册,报价1与不同的行。这只是为了让你能感觉到table是如何工作的。
这个 UPDATE 查询将更新上面的所有记录,但最后一个记录的第4行除外。
运行查询之后,它似乎工作正常。
我的问题是,使用 UPDATE 使用 IN 有人预见到它可能会有什么问题吗?有没有更好的方法来更新多个记录?
我想我可以为每个booking/quote组合运行一个单独的查询,但我认为这会对服务器造成不必要的负担。
我还考虑过添加一个id列,但是如果这样做的话,我将不得不更新其他几个表。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题