如果想把一个字段里所有包含有某个字符串的文本替换成另一个字条串,用SQL应该怎么写?比如有这么一个字段记录  路径
  c:\
  c:\tools 
  c:\windows
现在想把"c:\"全部替换成"d:\",该怎么写?想要批量的,而不是逐条的,应该如果有上万条记录的话逐条就会很慢

解决方案 »

  1.   

    update 表 set 字段=replace(字段,'c:\','d:\') where 字段 like 'c:\%'
      

  2.   

    update 表 set 字段=replace(字段,'c:\','d:\') where 字段 like 'c:\%'
    这句里的三个“字段”指的都是字段名称吗?
      

  3.   

    sql = "update " & strTableName & " set " & rstRecords.Fields(intFieldIndex).Name & " = " & Replace(rstRecords.Fields(intFieldIndex).Name, Me.txtFind.Text, Me.txtReplace.Text, 1) & " where " & rstRecords.Fields(intFieldIndex).Name & " like '%" & Me.txtFind.Text & "%'"
    为什么我这样写不会替换掉呢?
      

  4.   

    Replace那里的问题,应该将Replace函数包含在SQL中:sql = "update " & strTableName & " set " & rstRecords.Fields(intFieldIndex).Name & " = Replace(" & rstRecords.Fields(intFieldIndex).Name & ",'" & Me.txtFind.Text & "'," & "'" & Me.txtReplace.Text & "')" where " & rstRecords.Fields(intFieldIndex).Name & " like '%" & Me.txtFind.Text & "%'"
      

  5.   

    Replace 是sql_server的内置函数
      

  6.   

    to winehero(编程人生) 
       你修改的这句里where 前面那个分号应该去掉变成空格,否则会提示语法错误。修改后执行提示“表达式中replace函数未定义”
      

  7.   

    sql = "update " & strTableName & " set " & rstRecords.Fields(intFieldIndex).Name & " = Replace(" & rstRecords.Fields(intFieldIndex).Name & ",'" & Me.txtFind.Text & "'," & "'" & Me.txtReplace.Text & "') where " & rstRecords.Fields(intFieldIndex).Name & " like '%" & Me.txtFind.Text & "%'"
    然后rs.open sql.....
    不行吗?
      

  8.   

    比如你要修改的字段为path :UPDATE tb 
    SET path = 'D:'& mid(path,3)
    WHERE left(path,2)='C:';
      

  9.   

    to laidon(已经开始用VB.net了,可还是舍不得VB):
       执行后提示“表达式中replace函数未定义”
      

  10.   

    to:laidon(已经开始用VB.net了,可还是舍不得VB)
        不行的,会提示“表达式中replace函数未定义”
      

  11.   

    update 表 set 字段='d:\' & mid(字段,4) where 字段 like 'c:\%'