不知道为什么这不起作用,但是你走了。
update delievery
set status = 'delivered'
where order_num = 'a563'
and order_num = 'a109';
如果我要运行它,我会更新0行。
当然我可以单独做到这一点,但如果我需要更新两件以上的东西,那就不会非常有效。
答案 0 :(得分:3)
您需要使用OR
。 AND
要求满足这两个条件。
update delievery
set status = 'delivered'
where order_num = 'a563'
or order_num = 'a109';
你也可以像这样使用IN
:
update delievery
set status = 'delivered'
where order_num IN ('a563', 'a109');
答案 1 :(得分:1)
您使用AND
编写了查询,这只是意味着用编写的条件必须为真。这里的条件是order_num = 'a563'
和order_num = 'a109'
。现在,如果你查看你的表格,你会在整个表格中看不到列order_num
将同时包含值a563
和a109
的行。
有一次只有一个值。因此,两个条件永远不会同时满足 ,因此不会更新任何行。
您应该在查询中使用OR
而不是AND
。因为它将检查是否有任何一个条件为真,然后更新值。因此,在一行中,列order_num
的值将为a563
,而在其他行中,它将为a109
,因此两者都将更新。
答案 2 :(得分:0)
你必须使用'或'
update delievery set status = 'delivered'
where order_num = 'a563' or order_num = 'a109';
...
order_num || Status
---------------------
a563 pending
a564 deliverd
a109 pending
a110 pending