我有一数据库 keyname(varchar)     strid(text)  成都                 12,75,1236,8975,14566,23645  我想用一sql,
当数据库中存在  成都的  时候 
   在strid  后面   加上一个字符串  如32332  结果为  keyname='成都'  的 strid ='12,75,1236,8975,14566,23645,32332  '(存在 就update)当不存在 成都的时候直接  插入      keyname='成都'   strid='32332'(不存在就  insert)

解决方案 »

  1.   

    insert into tt(keyname,strid)
    select distinct '成都','32332' where 
    not exists(select 1 from tt where keyname='成都')update tt set strid=concat(strid,'32332')
    where exists(select 1 from tt where keyname='成都')
      

  2.   

    or
    如KEYNAME是主键的话:
    replace tt set keyname='成都',strid=concat(strid,'32332')
      

  3.   

    replace tt set keyname='成都',strid=concat(COALESCE(strid,''),'32332')
      

  4.   

    修改:
    replace tt(b1,b2)
    select b1,concat(COALESCE(b2,''),'32332') from tt 
    B1为主键
    b1:keyname
    b2:strid
      

  5.   

    or
    replace tt(b1,b2)
    select b1,concat(COALESCE(b2,''),'32332') from tt where b1='成都'
    B1为主键
    b1:keyname
    b2:strid
      

  6.   

    一句SQL做不到,只能先update table set ... where keyname='成都',如果语句返回0记录更新再insert 可以用store procedure
    或直接在你程序中实现
      

  7.   

    insert into tt(keyname,strid)
    select distinct '成都','32332' where
    not exists(select 1 from tt where keyname='成都')update tt set strid=concat(strid,'32332')
    where keyname='成都'