比如:name是个列
name里现在有数据:
张三,李司
我想在 张三,李司的基础再添加一个名字不如王五,在sql语句中只写set name ='王五'就可以添加进去 ,然后数据库里就有了张三,李司,王五三个名字
有办法可以做到吗?

解决方案 »

  1.   

    添加新记录用INSERT,update只能修改
      

  2.   

    如果是用insert那样不是得把原来name列里的数据先查询出来,然后再把要新增加的和名字和前面的拼接起来,然后重新插入啊。。
    好象这样就麻烦了。。
      

  3.   

    如果是这样就还有有新的问题:比如我原来数据库类有两个名字A和B,如C果更新了一次。里面就回有ABC 三个名字,如果C更新两次或多次 里面就会有两个或多个C。这个问题怎么解决?
      

  4.   

    哦,刚才理解错了,
    update shop_jb set spec=(select spec from shop_jb where id=1)+'22' where id=1
    这样应该可以吧
      

  5.   


    你的意思就是说这是并发处理。简单啊。有两种处理方式。
    第一,放在一个事务处理中。
     首先 select name from ..... 
    然后,程序中对这个name做字符串链接。比如成了name1。
    update xx set name=name1 where name=#name#,看到了没有,这里带上这个作为判断条件,如果更新返回0,就是说别人已经更改过这个字段了。那么你可以做相应的处理,重新再查询更新,或者直接报更新失败。第二种,一条sql语句搞定 update table set name=name||#str# where xxxxx
    这里的str就是你要增加的字符串||就是字符串链接运算符,Oracle中的。其他数据库也有相应的函数。
      

  6.   

    在sql语句里用加号好象不可以哦~~~
      

  7.   

    第一中的那个带##的是什么意思啊在sql里好象不能识别
      

  8.   


    我刚才试过了,SQLSERVER2000可以,别的数据库就不清楚了
      

  9.   

    这个要具体的看了,如果你的数据库里就name 这个字段就直接用
    insert into tablename values('王五');
    如果有很多的字段就
    insert into tablename set name='王五'就好了
    update tablename set name='王五';这样name的所有值都变成王五了 
      

  10.   


    明白了。。“||”这个连接符是oracle里的吗?sql2005你相当于这个符号的知道是什么吗?