我有一个表MobileInfo,其中有一个appversion的字段,根据这个字段截分为三部分,然后把三部分赋值给MobileInfo表的另外三个字段(company,brand,maincom);
比如appversion的值是1.0_1.6_9,maincom=1.0 company=1,brand=6_9要截成这样,然后修改MobileInfo表?请问这个要怎么写sql语句,我用的是mysql数据库!   在线等,很急!!!!

解决方案 »

  1.   

    mysql的语法我不懂,这里是SQLServer专区,那我就用SQLServer的思路跟你说,用charindex获取下划线的位置,然后用substring把字段截取出来,再赋值。
      

  2.   

    INSTR找到到_的位置,然后substring截取。
      

  3.   

    mysql中好像没有charindex这个函数呀
      

  4.   

    Instr这个是什么函数,请问具体语法是什么?
      

  5.   

    所以说放到mysql专区去问嘛。语法不同,很难说清楚,我反正不懂mysql,你等高手吧
      

  6.   

    没mysql,LS几位都是mssql区的牛人
      

  7.   

    贴建表及插入记录的SQL,及要求结果出来看看
      

  8.   

    试试符合要求么:
    UPDATE MobileInfo 
    SET company = SUBSTR(appversion,1,INSTR(appversion,'_')-1), 
    brand = SUBSTR(SUBSTR(appversion,INSTR(appversion,'_')+1),1,INSTR(SUBSTR(appversion,INSTR(appversion,'_')+1),'.')-1), 
    maincom = SUBSTR(SUBSTR(appversion,INSTR(appversion,'_')+1),INSTR(SUBSTR(appversion,INSTR(appversion,'_')+1),'.')+1) ;
      

  9.   

    表:MobileInfo  表字段  id,appversion (varchar) ,company,brand,maincom appversion 插入的是1.0_1_6_9这种格式的数据,然后company,brand,maincom 得到的
    maincom=1.0 company=1,brand=6_9,大致就是这样的,做修改操作!!
      

  10.   

    你是insert啊,看错了,但是你数据格式能不能确定点。1.0_1.6_9 or 1.0_1_6_9?
    INSERT INTO MobileInfo(appversion,company,brand,maincom)
    VALUES ('1.0_1.6_9', 
    SUBSTR('1.0_1.6_9',1,INSTR('1.0_1.6_9','_')-1), 
    SUBSTR(SUBSTR('1.0_1.6_9',INSTR('1.0_1.6_9','_')+1),1,INSTR(SUBSTR('1.0_1.6_9',INSTR('1.0_1.6_9','_')+1),'.')-1), 
    SUBSTR(SUBSTR('1.0_1.6_9',INSTR('1.0_1.6_9','_')+1),INSTR(SUBSTR('1.0_1.6_9',INSTR('1.0_1.6_9','_')+1),'.')+1));
      

  11.   

    UPDATE MobileInfo 
    SET company = SUBSTR(appversion,1,INSTR(appversion,'_')-1), 
    brand = SUBSTR(SUBSTR(appversion,INSTR(appversion,'_')+1),1,INSTR(SUBSTR(appversion,INSTR(appversion,'_')+1),'_')-1), 
    maincom = SUBSTR(SUBSTR(appversion,INSTR(appversion,'_')+1),INSTR(SUBSTR(appversion,INSTR(appversion,'_')+1),'_')+1) ;
    实在不行就贴几条表数据出来看看