我有一张桌子,桌子里面有一个“杯”字栏“咖啡”
update coffee set cup=cup||'test_add'
这不会引发错误,但不会将字符串“test\u add”添加到列中!另外,cup列中的值当前为空。我花了很长时间才知道,当列没有值时,不能使用这种语法添加文本。这对我来说没有意义,因为列被定义为文本列,并且它没有值,所以对我来说似乎是等价的
a=""
a+="test_add"
这个语法很有效。另一方面如果是的话
a=None
a+="test_add"
它抛出了一个错误。所以在我看来,我放在最上面的代码应该要么添加文本要么抛出一个错误!!!你知道吗
在SQL中,用
NULL
做任何事情都会返回NULL
。特别是:为空。你说
cup
列没有值,加上你描述的症状意味着cup IS NULL
是真的。所以你的cup || 'test_add'
实际上是将字符串添加到列的值中,问题是NULL || any_string_you_want
是NULL
。你知道吗如果要将} :
NULL
视为空字符串,请使用^{所以你要这样做:
Python和SQL是不同的语言,您不应该期望Python的
None
表现得像SQL的NULL
。你没有看到bug,你只是看到了标准的NULL
行为(当你不习惯它时,它通常看起来像bug,但那是另一回事)。你知道吗相关问题 更多 >
编程相关推荐