id  name  
1   aaaa
2   bbbb
3   cc'cc
4   d,ddd
5   %eeee现在要利用模糊查询把name这个字段保护'这个符号的数据查询出来然后修改成 cccc 如何实现?

解决方案 »

  1.   

    replace(name,''''','') ,刚才的确实错了
      

  2.   

    正则呀!兄弟
    SELECT * FROM test
    WHERE REGEXP_LIKE(name,'.*[''].*')
      

  3.   

    给你测了下
    SQL> ed
    已写入 file afiedt.buf  1   CREATE  TABLE test(
      2      id NUMBER,
      3      name VARCHAR2(10)
      4*  )
      5  /表已创建。SQL> ed
    已写入 file afiedt.buf  1* INSERT      INTO test VALUES(1,'aaaa')
    SQL> /已创建 1 行。SQL> ed
    已写入 file afiedt.buf  1* INSERT      INTO test VALUES(2,'bbbb')
    SQL> /已创建 1 行。SQL> ed
    已写入 file afiedt.buf  1* INSERT      INTO test VALUES(3,'cc''cc')
    SQL> /已创建 1 行。SQL> ed
    已写入 file afiedt.buf  1* INSERT      INTO test VALUES(4,'d,ddd')
    SQL> /已创建 1 行。SQL> ed
    已写入 file afiedt.buf  1* INSERT      INTO test VALUES(5,'%eeee')
    SQL> /已创建 1 行。SQL> select * from test;        ID NAME
    ---------- ----------
             1 aaaa
             2 bbbb
             3 cc'cc
             4 d,ddd
             5 %eeeeSQL> ed
    已写入 file afiedt.buf  1  SELECT * FROM test
      2* WHERE REGEXP_LIKE(name,'.*[''].*')
    SQL> /        ID NAME
    ---------- ----------
             3 cc'ccSQL> ed
    已写入 file afiedt.buf  1  UPDATE test
      2  SET name = 'cccc'
      3* WHERE REGEXP_LIKE(name,'.*[''].*')
    SQL> /已更新 1 行。SQL> select * from test;        ID NAME
    ---------- ----------
             1 aaaa
             2 bbbb
             3 cccc
             4 d,ddd
             5 %eeeeSQL>
    嗯,没有问题的话可以结贴了~