为什么 UPDATE x SET y='c' AND TRUE 导致 y='0'
Why does UPDATE x SET y='c' AND TRUE result in y='0'
我正在玩一个 SQL 挑战并注意到给定一个 table x
和一个 TEXT
列 y
下面的查询:
UPDATE x SET y='c' AND TRUE
结果 y='0'
还有:
UPDATE x SET y='c' OR TRUE
结果 y='1'
出于好奇,我试图了解下面发生的事情以产生这些结果。
因为实际发生的是:
UPDATE x SET y=('c' AND TRUE)
和
UPDATE x SET y=('c' OR TRUE)
和 'c'
作为布尔值计算为 0
表达式 y='c' AND TRUE
和 y='c' OR TRUE
是 Boolean expressions。当表达式为真时,它们的计算结果为 1
,当表达式为假时,它们的计算结果为 0
。
您的 update
计算这些表达式,并将它们的结果存储回字段 y
。
我正在玩一个 SQL 挑战并注意到给定一个 table x
和一个 TEXT
列 y
下面的查询:
UPDATE x SET y='c' AND TRUE
结果 y='0'
还有:
UPDATE x SET y='c' OR TRUE
结果 y='1'
出于好奇,我试图了解下面发生的事情以产生这些结果。
因为实际发生的是:
UPDATE x SET y=('c' AND TRUE)
和
UPDATE x SET y=('c' OR TRUE)
和 'c'
作为布尔值计算为 0
表达式 y='c' AND TRUE
和 y='c' OR TRUE
是 Boolean expressions。当表达式为真时,它们的计算结果为 1
,当表达式为假时,它们的计算结果为 0
。
您的 update
计算这些表达式,并将它们的结果存储回字段 y
。