日期:2014-05-18  浏览次数:20459 次

SQL语句--这样查询能能实现吗?
select * from customer where userid='小强'  
---------------------------------------------------
以上的语句是取出小强的客户信息
如果是管理员登陆他要取出所有的客户信息,在SQL语句不变,只改变userid值的情况下能实现吗?也就是说有没有一个通配符
类似select * from customer where userid='?'
就能查出所有的客户。

不知道有没有说明白~~  


------解决方案--------------------
貌似没有这种写法 不过 你这种要求 可以考虑SQL 注入的东东 把select * from customer where userid='?' 
构造成 select * from customer where userid='1' or 1=1 --';
传入的部分为 " 1' or 1=1 --" 这样弄可以不改变你的 SQL语句 ,但是存入SQL 注入的漏洞。

最好还是 加一个判断 然后用 select * from customer 查询
------解决方案--------------------
管理員登陸的話取所有的客戶信息:
在串SQL時把where條件去掉,或者 改爲 where userid is not null
------解决方案--------------------
用 where userid like 

------解决方案--------------------
你应该是用存储过程来实现的吧

那为什么不在存储过程里面判断一下哦??
如果@userid=0 则查询所有
反之按条件查询

------解决方案--------------------
写一个存储过程就行,如果userid 不输入去所有
如果输入小强,久按条件
SQL code

create procedure GetcustomerByuserid
@userid varchar(50) =null
as
select  *  from  customer  where userid=@userid or @userid is null