使用多个IN进行MySQL更新

时间:2018-04-16 14:58:59

标签: php mysql

我只是想验证这是否是使用此特定UPDATE查询的最佳方法。

使用带有多个IN子句的UPDATE,如下所示:

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列,我不知道。 BOOKING和QUOTE有主键。如果你在表格中注意到,有12个book123条目,quote1有不同的行。这样你就可以了解桌子是如何工作的。

UPDATE查询将更新上述所有记录,但最后一个记录除了line = line4。

运行查询后,它似乎工作正常。

我的问题是,使用带有UPDATE子句的特定IN查询,是否有人预见到它可能存在的任何问题?有更好的方法来更新多个记录吗?

我以为我可以为每个预订/报价组合运行单独的查询,但我认为这会对服务器造成不必要的负担。

我还考虑过添加一个ID列,但如果我这样做,我就必须更新其他几个表。

0 个答案:

没有答案