我有一张桌子,例如
Merchant(
id (PK,char(15),not null),
name (varchar(22),null),
city(varchar(10),null),
location(varchar(10),null),
state_code(int,null),
country_code(int,null)
)
city
总是NULL
而name
也是NULL
。
有人将这些字段更新为字符串 "NULL"
。
我如何找到差异?
答案 0 :(得分:2)
您可以像这样修复有问题的行:
UPDATE Merchant
SET city = NULL
WHERE city = 'NULL';
UPDATE Merchant
SET name = NULL
WHERE name = 'NULL';
只需使用字符串 "NULL"
找到行:
SELECT * FROM Merchant
WHERE city = 'NULL'
OR name = 'NULL';
或者找到真正的NULL
:
SELECT * FROM Merchant
WHERE city = NULL
OR name = NULL;
请注意所有这些示例:有NULL
,然后有'NULL'
。
答案 1 :(得分:1)
您可以尝试类似
的内容SELECT *
FROM Merchant
WHERE city = 'NULL'
OR name = 'NULL'
这应返回列city或column name设置为字符串NULL的所有行。
SELECT *
FROM Merchant
WHERE city IS NULL
OR name IS NULL
将返回列城市或列名称为 NULL
的所有行答案 2 :(得分:0)
对于例如数字更简单支付金额(账单):
- 支付金额为0(您无需支付)[amount = 0
]
- 金额可以是100.-(你必须支付100.-)[amount = 100
]
- 或者金额可以为NULL,这意味着尚未设置金额[amount is null
]
对于给定的案例,括号中的陈述将返回true。
所以你看,它与0(没有钱支付)或NULL(未设置)的数量不同。你的字符串也一样。它没有被设置或是一个空字符串。
我希望它可以帮助你......; - )