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

关于网站管理员权限的问题(详细请点击):

我想在网站后太弄个和WINDOWS样的权限,不会做了,来人帮我!
我弄了有三个表  
-------------------------------------------------------
一个用户表   USER  
ID username pwd             BelongTo
1 Administrator 123456   Administrators
2 lyh 123   guest

BelongTo   表示的是那个组
-------------------------------------------------------
一个权限组   Lpset
ID L_name   Lp_SetLegalPower
1 Administrators           add,del
2 guset   add

Lp_SetLegalPower   表示具有的操作权限   add添加   del删除   等...
-------------------------------------------------------

一个详细权限的介绍   LegalPower
ID Elucidation
add 添加信息...
del 删除信息....

问题:我想查询administrator就得到:
add 添加信息...
del 删除信息....
这样的结果。
查询   lyh就得到:
add 添加信息...

不晓得说清楚没!主要是我不会写这些SQL语句   和   Lpset表上有用“,”分开的参数。
看明白题目的人帮我啊``   实在不晓得怎么做了!


------解决方案--------------------
你看看split
------解决方案--------------------
写一函数转换

示例
CREATE TABLE testColConvertRow
(IdCol varchar(10),StrCol varchar(800))
GO
INSERT INTO testColConvertRow
SELECT 'A ', '10;15;17;18;45;89;25;36;8799;566;666;988 '
UNION ALL
SELECT 'B ', '10;15;17;18;45;89;25;36;8799;566;666;988 '
UNION ALL
SELECT 'C ', '10;15;17;18;45;89;25;36;8799;566;666;988 '
go
CREATE PROCEDURE dbo.ColConvertRow
AS
DECLARE @sql varchar(8000)
DECLARE @col1 varchar(100)
DECLARE @col2 varchar(3000)
declare @tb table(a varchar(10),b varchar(800))
CREATE TABLE #re (col1 varchar(10),col2 varchar(30))
SET NOCOUNT ON
insert into @tb select IdCol,strCol from testColConvertRow

DECLARE c_cur cursor FAST_FORWARD
FOR SELECT a,b FROM @tb
OPEN c_cur
FETCH NEXT FROM c_cur INTO @col1,@col2
WHILE @@FETCH_STATUS=0
BEGIN
SET @sql= 'INSERT INTO #re(col1,col2) '
SET @sql=@sql+ 'SELECT ' ' '+@col1+ ' ' ', ' ' '+REPLACE(@col2, '; ', ' ' 'UNION ALL SELECT ' ' '+@col1+ ' ' ' AS Col1, ' ' ')+ ' ' ' '
EXEC(@SQL)
FETCH NEXT FROM c_cur INTO @col1,@col2
END
CLOSE c_cur
DEALLOCATE c_cur
SELECT * FROM #RE
SET NOCOUNT OFF
GO
------解决方案--------------------