我只是想验证这是否是使用此特定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列,但如果我这样做,我就必须更新其他几个表。