如果将UPDATE
语句中的“,”替换AND
为,SQL中的含义是什么?
正常更新声明:
UPDATE table
SET column1 = value ,
column2 = value
WHERE condition
我的问题陈述:
UPDATE table
SET column1 = value AND column2 = value
WHERE condition
受影响的行似乎有所不同,所以我想知道我的问题语句在SQL中意味着什么?
插入查询后(原始查询):更新测试集column1 = 2,column2 = 5
插入查询后(从原始查询开始):更新测试集column1 = 2 AND column2 = 5
如果我插入查询(来自原始数据库):更新测试集column1 = 2 AND = 4
2 AND b = 1
尽管某些数据库对它进行了评估,但另一些数据库却没有对它进行编写,但这可能是错误的
如果您打算一次性设置多列,则必须使用逗号
如果使用此构造,则也许某些数据库将根据位逻辑运算来处理它,或者它们会将任何非零值视为true / false,将任何零视为false / true,而其他数据库将根据布尔逻辑运算来处理它
在示例草莓中,请友好地发布:https : //www.db-fiddle.com/f/3KawkrD8QfjJu6YyfuzB7U/0
将数据库设置为MySQL并运行它;它可以解决-MySQL可能会将2视为true,因此操作变为:
SET c = true and true --when b = 1
SET c = true and false --when b=0
您可以看到c列根据实际情况设置为1或0
SET c = (2 AND (b = 1))
^^^^^^^^^^^^^^^
This whole thing is turned into a value.
for C, it does NOT set column B at all
现在将数据库更改为Postgres并再次运行
这次您得到一个错误,AND期望布尔操作数,并且整数2是不可接受的
因此在Postgres中虽然可以接受:
SET d = (c=1 AND b=2) --sets a true or false value for d
您的其他表格不可接受
-
长话短说,您可能打算设置多个列:使用逗号。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句