select * from table where name in('a,b,c.... 代碼少一點,效率也低一點。
select * from table a inner join (select 'a' as name union select 'b' union select 'c' .... ) as b b.name=a.name
select * from table a inner join (select 'a' as name union select 'b' union select 'c' .... ) as b b.name=a.name 没看懂? 'c' 怎么做?
zjcxc(邹建) 改成 or 当然不行了,与的关系怎么能变成或呢?
--你的意思是说检索到第一个,后面的停止检索? 那就用:select * from table where name='a' if @@rowcount=0 begin select * from table where name='b' if @@rowcount=0 begin select * from table where name='c' if @@rowcount=0 begin .... end end end
我想问一句select * from table where name='a' and name='b' and name='c' and ... 是先执行“select * from table where name='a' ”还是先执行name='a' and name='b' and name='c' and ...
where name='a' and name='b' and name='c' ?
举人例子 1. select * from talbe name='a' 2 在上面的结果中,加个条件 name='b' 继续查 select * from talbe name='a' and name='b' 3 在 2中再加一个条件name='c' 继续查 select * from talbe name='a' and name='b' and name='c', 以此类推,无限制下去。直到用户找到所需。
代碼少一點,效率也低一點。
from table a
inner join
(select 'a' as name
union select 'b'
union select 'c' ....
) as
b b.name=a.name
from table a
inner join
(select 'a' as name
union select 'b'
union select 'c' ....
) as
b b.name=a.name
没看懂? 'c' 怎么做?
if @@rowcount=0
begin
select * from table where name='b'
if @@rowcount=0
begin
select * from table where name='c'
if @@rowcount=0
begin
....
end
end
end
是先执行“select * from table where name='a' ”还是先执行name='a' and name='b' and name='c' and ...
where name='a' and name='b' and name='c' ?
1. select * from talbe name='a'
2 在上面的结果中,加个条件 name='b' 继续查 select * from talbe name='a' and name='b'
3 在 2中再加一个条件name='c' 继续查 select * from talbe name='a' and name='b' and name='c',
以此类推,无限制下去。直到用户找到所需。