有一个字段里全都是这样的数据
pdf1/dxj_2005_001/14/06/111.pdf
pdf1/dxj_2005_001/14/06/112.pdf
pdf1/dxj_2005_001/14/06/113.pdf
pdf2/dxj_2005_001/14/06/114.pdf
pdf2/dxj_2005_001/14/06/115.pdf我想 搜索出包含“pdf1/dxj_2005_001/”的所有数据 然后把另外一个字段设置成 “dxj_2005_001”update tablename set aaa='dxj_2005_001' where bbb like 'pdf1/dxj_2005_001/%'
我知道这样写是不行的,网上也有说用escape之类的进行转义才行,但试了半天也不行,哪位大侠帮着看看应该怎样写呀

解决方案 »

  1.   

    -- 试试这样
    update tablename set aaa='dxj_2005_001' where charindex('pdf1/dxj_2005_001/',bbb)=1
      

  2.   


    update tablename set aaa='dxj_2005_001' where charindex(''pdf1/dxj_2005_001/',bbb)>0
      

  3.   

    update tablename set aaa='dxj_2005_001' where charindex(''pdf1/dxj_2005_001/',bbb)>0
      

  4.   

    谢谢各位 这样确实性,但sql里下划线不是关键字吗,表示下划线这个地方是任何字母?为啥行呢?
      

  5.   

    特殊符号,可以使用[],也可以使用escape '/'
    update tablename set aaa='dxj_2005_001' where bbb like 'pdf1[/]dxj_2005_001[/]%'
      

  6.   

    另外我在MSSQL2008R2里:
    create table t1
    (
    name varchar(50)
    )
    insert into t1
    select 'pdf1/dxj_2005_001/14/06/111.pdf' union all
    select 'pdf1/dxj_2005_001/14/06/112.pdf' union all
    select 'pdf1/dxj_2005_001/14/06/113.pdf' union all
    select 'pdf2/dxj_2005_001/14/06/114.pdf' union all
    select 'pdf2/dxj_2005_001/14/06/115.pdf'
    select * from t1select * from t1 where name like 'pdf1/dxj_2005_001/%'-------------------------
    name
    pdf1/dxj_2005_001/14/06/111.pdf
    pdf1/dxj_2005_001/14/06/112.pdf
    pdf1/dxj_2005_001/14/06/113.pdf是可以直接查询出来的。