我有一个是URL的分类表;如:
序号 一级分类 二级分类 URL
1 技术网站 论坛 http://bbs.csdn.net/
2 技术网站 论坛 http://www.csdn.net/然后还有用户访问的基础数据表。
用户ID 访问的URL
1 http://bbs.csdn.net/topics/new?forum_id=MSSQL_Basic计算出匹配到URL库的第一条,如果第一条没有匹配到,默认匹配到一级域名的数据,第二条。
如上所示匹配第一条;数据匹配算法
序号 一级分类 二级分类 URL
1 技术网站 论坛 http://bbs.csdn.net/
2 技术网站 论坛 http://www.csdn.net/然后还有用户访问的基础数据表。
用户ID 访问的URL
1 http://bbs.csdn.net/topics/new?forum_id=MSSQL_Basic计算出匹配到URL库的第一条,如果第一条没有匹配到,默认匹配到一级域名的数据,第二条。
如上所示匹配第一条;数据匹配算法
GO
CREATE TABLE g_drl(
id int null,
yjfl varchar(50) null,
rjfl varchar(50) null,
DRL varchar(50) null
)
GO
INSERT g_drl
SELECT 1,'技术网站','论坛','http://bbs.csdn.net/' UNION ALL
SELECT 2,'技术网站','论坛','http://www.csdn.net/' UNION ALL
SELECT 3,'网站','论坛','http://www.baidu.com/'
GO
IF OBJECT_ID('dbo.g_user') IS NOT NULL DROP TABLE g_user
GO
CREATE TABLE g_user(
id int null,
DRL varchar(100) null
)
GO
INSERT g_user
SELECT 1,'http://bbs.csdn.net/topics/new?forum_id=MSSQL_Basic' UNION ALL
SELECT 2,'http://www.baidu.com/index.php?tn=myie2dg&ch=6'select * from g_drl
select * from g_userselect b.id,a.drl from g_drl a,g_user b where b.drl like '%'+a.drl+'%'
但这样应该就没有问题了
left(基础数据表.访问的URL,length(分类表.URL)) = 分类表.URL
http://bbs.csdn.net一、字段
1、红色部分bbs,字段url_detail
2、蓝色部分csdn.net,字段url_basic二、扫描url_detail
if recordcount<>0 then
输出 url_datail
else
输出 url_basic
end if三、拓展
如果这个url表的维护仅由管理员,可以考虑用FSO生成一个页面,用于判断,避免反复读取数据库。
IF OBJECT_ID('dbo.g_drl') IS NOT NULL DROP TABLE g_drl
GO
CREATE TABLE g_drl(
id int null,
yjfl varchar(50) null,
rjfl varchar(50) null,
DRL varchar(50) null
)
GO
INSERT g_drl
SELECT 1,'技术网站','论坛','http://bbs.csdn.net/' UNION ALL
SELECT 2,'技术网站','论坛','http://www.csdn.net/' UNION ALL
SELECT 3,'网站','论坛','http://www.baidu.com/'
GO
IF OBJECT_ID('dbo.g_user') IS NOT NULL DROP TABLE g_user
GO
CREATE TABLE g_user(
id int null,
DRL varchar(100) null
)
GOINSERT g_user
SELECT 1,'http://bbs.csdn.net/topics/new?forum_id=MSSQL_Basic' UNION ALL
SELECT 2,'http://www.baidu.com/index.php?tn=myie2dg&ch=6'
select C.DRl,A.DRL,B.id,B.DRL from g_drl A
inner join g_drl B on CHARINDEX(REPLACE(A.DRL,'http://www.',''),B.DRL)>1
inner join g_user C on CHARINDEX(REPLACE(A.DRL,'http://www.',''),C.DRL)>0
/*
DRl DRL id DRL
---------------------------------------------------------------------------------------------------- -------------------------------------------------- ----------- --------------------------------------------------
http://bbs.csdn.net/topics/new?forum_id=MSSQL_Basic http://www.csdn.net/ 1 http://bbs.csdn.net/
http://bbs.csdn.net/topics/new?forum_id=MSSQL_Basic http://www.csdn.net/ 2 http://www.csdn.net/
http://www.baidu.com/index.php?tn=myie2dg&ch=6 http://www.baidu.com/ 3 http://www.baidu.com/(3 行受影响)*/
drop table g_drl
drop table g_user
把域名分成两个参数 bbs 和 csdn
like("%csdn%")
like("%bbs.csdn%")
2、在url表中创建父子关系,这样,管理应该没有问题。
顶
{
int n,m;
m = 1; n = m+++m++;
printf("%d",n);
}
{
int n,m;
m = 1; n = m+++m++;
printf("%d",n);
}