sql update table - 语句不起作用

时间:2015-05-06 07:57:03

标签: sql sql-update access-vba

我的VBA中有以下声明:

DoCmd.RunSQL "UPDATE customer SET Status = 'Premier' WHERE customer_id = 41308408 AND location IN ('London','New York') AND Status = ''"

用于更新名为“customer”的表。我可以在我的表中看到有大约20个条目,其中customer_id是41308408(即,如果我过滤该值的列),每个条目的位置是伦敦或纽约。每个状态的“状态”列都是空白的。

我执行上面的代码,它编译好了,但它说“你将要更新0行”。如上所述,我希望它是20。有什么想法吗?

3 个答案:

答案 0 :(得分:1)

也许status不是空白,也许它是空的?尝试以下解决方案:

UPDATE customer 
SET Status = 'Premier' 
WHERE customer_id = 41308408 
AND location IN ('London','New York') 
AND Status is null

答案 1 :(得分:0)

空白可能是数据库中的nullNull是值 - 他们缺乏价值。您无法使用=运算符查询它们,您需要使用is运算符明确处理它们:

DoCmd.RunSQL "UPDATE customer SET Status = 'Premier' WHERE customer_id = 41308408 AND location IN ('London','New York') AND Status IS NULL"

答案 2 :(得分:0)

更新客户SET状态='总理'WHERE customer_id = 41308408 AND位置IN('伦敦','纽约')AND((状态为空)或长度(修剪(状态))= 0)