现需要将“字段a”第100个字符串以后的第一个<p>标签前的字符串剪切到"字段b"mysql语句应怎样写?

解决方案 »

  1.   


    update tablename set fieldB = substring(fieldA,101,instr(fieldA,'<p>')-101);
      

  2.   

    楼上这句只适合<p>标签刚好跟着第100个字符吧,
    现在的情况是100......<p>,也就是说第100个字符与<p>之间是存在未知字符的,继续等
      

  3.   

    你试过了没有?
    难道我这个不是未知字符的吗?instr(fieldA,'<p>')
    看看这个函数的用法 。
      

  4.   

    instr(fieldA,'<p>')-101这个长度是未知的
      

  5.   

    如:
    ...有些学习者总是习惯于一边看书一边听100,把磁带当成阅读的辅助工具<p>也有向外侨或访客就某一话题而做的录音访问。
    想截出来是:
    ...有些学习者总是习惯于一边看书一边听100,把磁带当成阅读的辅助工具如:
    ...有些学习者总是习惯于一边看书一边听100,把磁带当成阅读的辅助工具把磁带当成阅读的辅助工具把磁带当成阅读的辅助工具<p>也有向外侨或访客就某一话题而做的录音访问。
    截出来就应该是:
    ...有些学习者总是习惯于一边看书一边听100,把磁带当成阅读的辅助工具把磁带当成阅读的辅助工具把磁带当成阅读的辅助工具(注:100代表第100个字符)
      

  6.   

    http://dev.mysql.com/doc/refman/5.1/en/charset-convert.html
      

  7.   

    你把我给你的东西改一下就好了update tablename set fieldB = substring(cast(fieldA AS CHAR CHARACTER SET gbk),101,instr(cast(fieldA AS CHAR CHARACTER SET gbk),'<p>')-101);
      

  8.   

    不行呢,截不到任何字符,yueliangdao有试过么?
      

  9.   

    update tablename set fieldB = substring(fieldA,0,locate('<p>',substring(fieldA,101,CHAR_LENGTH(filedA))+100);
    试一下这个
      

  10.   

    update   tablename   set   fieldB   =   substring(fieldA,0,locate( ' <p> ',substring(fieldA,101,CHAR_LENGTH(filedA))+100);