新闻相关文章查询语句
2008-06-14 17:12
197 查看
在一个站点中经常使用相关文章
在新闻表中增加 KeyWord字段
在页面中让用户输入关键字时以","号分割
新闻内容
id title KeyWord
1 a 大,家,好
2 b 家,庭
3 c 你,好,吗
查询id为1的新闻的相关文章
则可以查询出 id为2,3的新闻
create proc TestFindStr --create proc ( @id int --新闻id ) as declare @TempTable table(keyword VARCHAR(50)) --create temp table declare @tempstr varchar(50), --temp char @I INT ,--"," 号 出现位置 @tempkeywords varchar(50) --news keyword select @tempkeywords=KeyWord from News where id=@id -- 关键字赋值 if @@rowcount=0 --如果行数为0 则返回 begin return end SET @I=CHARINDEX(',', @tempkeywords) --第一个,位置 WHILE @I>=1 BEGIN SET @tempstr=LEFT(@tempkeywords, @I-1) --左边起 截取 出现位置-1 if rtrim(ltrim(@tempstr))<>'' --去左右空格 不为空 begin insert into @TempTable(keyword) values(@tempstr) --插入到临时表 end SET @tempkeywords=SUBSTRING(@tempkeywords, @I+1,LEN(@tempkeywords)-@I) --截取 @I 以后字符串 SET @I=CHARINDEX(',', @tempkeywords) --截取后,位置 if(@I<=0) -- 字符串中如果没有 "," 代表已经是最有一个 begin if rtrim(ltrim(@tempkeywords))<>'' --去左右空格 不为空 确保最后一个字符不为,号 INSERT INTO @TempTable(keyword) VALUES(@tempkeywords) --插入剩余字符到临时表 end END
-- 以上语句把 "大,家,好," 关键字 字段 分割 存入 临时表
SELECT distinct id, t.keyword FROM News f,@TempTable t --内联 确保每个关键字被like where f.KeyWord like t.keyword+',%' or f.KeyWord like '%,'+t.keyword or f.KeyWord like '%,'+t.keyword+','
相关文章推荐
- dedecms 利用sql语句页面查询相关文章
- 【ORACLE】常用物化视图相关元数据查询语句
- MYSQL 多关键字相关文章查询方法
- mysql 查询语句统计和查询缓存相关的状态值解疑答惑
- 本人开发系统--新生报到与数据统计管理系统--数据库设计及相关查询SQL语句笔记
- SQL查询语句精华文章
- 分析一个字符串生成相关查询条件,比如搜索相关文章的功能
- SQL查询语句精华文章
- SQL查询语句精华文章(转)
- SQL查询时常用,但不熟悉的相关语句-----邮标,行号,临时表,类型转换,字符串函数,sql 判断语句,检查是不是数字,变量,sql split 函数
- Oracle查询表结构的一些相关语句
- oracle基本查询语句(一)用户相关语句
- Mysql实现文章查询上一篇和下一篇功能,附sql语句?
- Oracle查询表结构的一些相关语句
- oracle查询相关语句
- 根据进程号(PID)查询相关的SQL语句
- 查询出当前热点Buffer相关对象的SQL语句
- 【SQL精彩语句】分解字符串并查询相关数据
- Oralce学习笔记:查询语句 查看数据文件相关信息
- oracle中关于表空间,用户,表相关的查询语句