gpt4 book ai didi

sql - 这个 SQL IF 对 & 符做了什么?

转载 作者:行者123 更新时间:2023-12-04 22:26:15 25 4
gpt4 key购买 nike

这个 SQL IF 对 & 符做了什么?

IF ((@TablesToDeleteFrom & 1) <> 0 AND
(@TablesToDeleteFrom & 2) <> 0 AND
(@TablesToDeleteFrom & 4) <> 0 AND
(@TablesToDeleteFrom & 8) <> 0 AND
(EXISTS (SELECT UserId FROM dbo.aspnet_Users WHERE @UserId = UserId)))
BEGIN
...

这是来自aspnet_Users_DeleteUser SP 内的aspnet mebership DB。 @TablesToDeleteFrom 被声明为一个 int 并且默认为 0。我以前没有见过像这样的 & 的使用。

最佳答案

这是一个 bitwise 运算符。基本上要删除的表将通过为表创建值的按位组合将多个表存储在一个基于整数的字段中。这是一个例子。

1 - TableA
2 - TableB
4 - TableC
8 - TableD

表A & 表B = 1 | 2 = 3。(您使用 OR 运算符获取结果,使用 AND 运算符检查结果)。因此 3 的值存储在该字段中。然后,您可以使用与号运算符来查看是否设置了该值。 1 & 3 == 1,所以表A 将被删除。 4 & 3 = 0 所以不会删除 TableC。

关于sql - 这个 SQL IF 对 & 符做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/933106/

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