更新sql中列中的两个或多个值

时间:2014-12-04 04:24:01

标签: mysql sql

不知道为什么这不起作用,但是你走了。

update delievery
set status = 'delivered'
where order_num = 'a563'
and order_num = 'a109';

如果我要运行它,我会更新0行。

当然我可以单独做到这一点,但如果我需要更新两件以上的东西,那就不会非常有效。

3 个答案:

答案 0 :(得分:3)

您需要使用ORAND要求满足这两个条件。

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将同时包含值a563a109的行。

有一次只有一个值。因此,两个条件永远不会同时满足 ,因此不会更新任何行。

您应该在查询中使用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