gpt4 book ai didi

mysql - SQL中 "UPDATE table SET column1 = value AND column2 value WHERE condition"是什么意思?

转载 作者:行者123 更新时间:2023-11-29 04:32:30 28 4
gpt4 key购买 nike

如果UPDATE语句中的“,”被替换为AND,在SQL中是什么意思?

正常更新语句:

UPDATE table 
SET column1 = value ,
column2 = value
WHERE condition

我的问题陈述:

UPDATE table 
SET column1 = value AND column2 = value
WHERE condition

受影响的行似乎不同,所以我想知道我的问题语句在 SQL 中的含义是什么?

Original test Data

插入查询后(来自原始):更新测试集 column1 = 2 , column2 =5

Normal Update

插入查询后(来自原始):更新测试集 column1 = 2 AND column2 =5

My Question Statement

如果我插入查询(来自原始的):更新测试集 column1 = 2 AND =4

the output

最佳答案

2 AND b = 1 可能是错误的,虽然一些数据库评估它而另一些不评估它

如果您打算一次设置多个列,则必须使用逗号

如果你使用这个结构,也许一些数据库会根据按位逻辑运算来处理它,或者它们会将任何非零值视为真/假,将任何零视为假/真,而其他数据库会根据 bool 运算处理它-逻辑运算

在示例草莓中,亲切地发布: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 expects Boolean operands, and the integer 2 is not acceptable

因此在 Postgres 中这可能是可以接受的:

SET d = (c=1 AND b=2) --sets a true or false value for d

您的其他表格 Not Acceptable

--

长话短说,您可能打算设置多列:使用逗号。

关于mysql - SQL中 "UPDATE table SET column1 = value AND column2 value WHERE condition"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56352861/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com