我想把select * from AC_Article_KeyWords_Relation语句查询出来的结果放在一个数组A中
把select KeyWords=SUBSTRING(b.KeyWords,number,CHARINDEX(',',b.KeyWords+',',number+1)-number),ArticleId
from master..spt_values a join AC_Article b on a.number between 1 and LEN(b.KeyWords)
where CHARINDEX(',',','+b.KeyWords,number) = number AND type = 'P' order by KeyWords
查询出来的结果放在一个数组B中比较两个数组,去除掉两个数组中共有的数据,
把数组A中剩下的数据添加到数据库中,把数据B中的数据从数据库中删除,求高人指点怎么做,希望可以给出例子,谢谢,分不多,求助!!!
  --文章表
create table AC_Article
(
    ArticleId int primary key identity(1,1),
    KeyWords varchar(100)
)
insert into AC_Article
select '联合卡车,卡车,商用车,' union
select '东风,卡车' union
select '商用车,卡车,' union
select '卡车,'--查询关键字,添加到文章--关键词联系表(所有文章)
if not exists(select * from sysobjects where name='AC_Article_KeyWords_Relation')
    begin
        create table [AC_Article_KeyWords_Relation]
        (
            KeyWords varchar(100),
            ArticleId int
        )
    end
delete from [AC_Article_KeyWords_Relation]
insert [AC_Article_KeyWords_Relation]
select KeyWords=SUBSTRING(b.KeyWords,number,CHARINDEX(',',b.KeyWords+',',number+1)-number),ArticleId
from master..spt_values a join AC_Article b on a.number between 1 and LEN(b.KeyWords)
where CHARINDEX(',',','+b.KeyWords,number) = number AND type = 'P' order by KeyWords--根据AC_Article_KeyWords_Relation表里的数据得到关键,文章数量的数据(有效文章)
if not exists(select * from sysobjects where name='AC_KeyWords_ArticleCount')
    begin
        create table [AC_KeyWords_ArticleCount]
        (
            KeyWords varchar(100),
            ArticleCount int
        )
    end    
delete from [ac_keywords_articleCount]
insert into [AC_KeyWords_ArticleCount]
select aakr.KeyWords,count(aakr.articleId) as ArticleCount 
from [AC_Article_KeyWords_Relation] as aakr,[AC_Article] as aa  
where aakr.articleId=aa.ArticleId and IsEnable=1 and IsPublish=1 
group by aakr.KeyWords 
order by count(aakr.articleId) desc,aakr.KeyWords desc

解决方案 »

  1.   

    删除这个..
    select * from A intersect select * from B(前表和后表中都有记录)
      

  2.   

    1,可以的话,将A,B数组排序
    2,定义两个标志数组,分别对应A,B数组的每一个元素。
    3,一个二层循环将标志数组置位,然后根据标志位的情况删除……
      

  3.   

     表a中的数据查出来循环给数组a中,表b中的数据查出来循环给数组b中,
     在循环表a和表b的数据判断表b中有重复的删除掉,,就可以了啊,,
     既然思路清晰了,做起来就简单了啊,,
      

  4.   

    我是做一个更新的操作,如果数组A和数组B中有共同的数据,那么数据就依然在数据库中,
    如果A中有的数据在B中不存在,那么从数据库中删除A中的数据
    如果B中有的数据中在A中不存在,那么将B中的数据添加到数据库中
    我一直没做过数组,所以比较生疏,现在又急着要效果,所以求助了,希望各位可以帮帮我
    删除数据的语句:delete from AC_Article_KeyWords_Relation where KeyWords=@KeyWords and ArticleId=@ArticleId
    添加数据的语句:insert into AC_Article_KeyWords_Relation values(@KeyWords,@ArticleId)
      

  5.   

    两个二维数组,数组A和数组B,怎么能删除A和B中相同的数据,使数组A和数组B中存在对方不存在的数据????
      

  6.   

    还是使用循环吧  循环行  循环列 如果相同 二维数组都相同.删除 变量-- continue  
    学习中