关于SQL,一个多条件OR,AND,查询的问题,请高人帮帮忙!

来源:百度知道 编辑:UC知道 时间:2024/09/20 22:55:33
是这样的,一个数据库里,有N条记录,
表user有这些数据字段,
ID,AA,BB,CC,gongkai,power
1 11 11 11 1 111
2 22 22 22 0 222
3 33 33 33 1 111
4 44 44 44 1 222
5 55 55 55 2
6 66 66 66 0

如果gongkai设置了为1,和2 都表示,其它人看不到,为0即公开

但是

power为111的用户,可以忽略gongkai 的限制,看到同样POWER为111的那些gongkai为1,2的记录。但看不到POWER为222的那些设置了gongkai为12的记录。

如果POWER为空的话,就不能看到所有gongkai为1,2的用户。

在正常情况,只要用
if power<>"" then

select * from user where gongkai=0 or power=111

else

select * from user where gongkai=0

end if

但是,如果加入模糊查询的OR语句,就会全部查出来,前面写的AND条件也就失效了!

请高手帮帮忙!!
PS:POWER的值是变量,可以取任何值,只比对它们是否相同。

如果不考虑power的对比的话,

sql="select * from [User] where [gongkai]='0' " and ( [AA] like '%" & ***** & "%' or [BB] like '%" & ***** & "%')"
<

if power="" then
select * from user where gongkai=0
else
if power="111" then
select * from user where id not in (select id from user where power="222" and (gongkai=1 or gongkai=2))

if power = ''
begin
select * from [user] where gongkai=0
end
if power= '111'
begin
select * from [user] where power != 222
end

但是,如果加入模糊查询的OR语句,就会全部查出来,前面写的AND条件也就失效了! ???

这个问题用子查询来完成..