qq_15676309 2015-04-07 05:09 采纳率: 66.7%
浏览 2045

Mysql向表中某个字段添加有规律字符串怎么写SQL语句?例如(1P,2P,3P)

图片说明
如图所示
表 b 有三个字段aid,partname,partid,我希望partid字段可以根据partname字段的值添加有规律的字符串。
例如 partname字段值为PART 1则partid字段添加值 1P,partname字段值为PART 2则partid字段添加值 2P,
partname的值除了上述格式还有TV 01,TV 02,特征都是字符串有(无)空格加数字,
还有种就是数字夹在字符串中间的,第1話,第2話,第11話.最后一种最简单的是纯数字,1,2,3
反正就是用语句把这三种特征的字段其中的数字提取出来,在partid字段添加1P,2P,
3P的值。
请问各位数据库大神这样应该怎么写SQL语句?

  • 写回答

1条回答

  • danielinbiti 2015-04-07 06:00
    关注

    建一个函数吧

     create function getnum(varstring varchar(50)) returns varchar(30)
    BEGIN
    declare v_length int default 0 ;
    declare v_tmp varchar(50) default '';
    set v_length=char_length(varstring);
    while v_length > 0 do
    if (ascii(mid(varstring,v_length,1))>47 and ascii(mid(varstring,v_length,1))<58 ) then
    set v_tmp=concat(v_tmp,mid(varstring,v_length,1));
    end if;
    set v_length = v_length - 1;
    end while;
    return reverse(v_tmp);
    END;
    
    SELECT getnum(PARTNAME) AS R,PARTNAME FROM b
    
    评论

报告相同问题?

悬赏问题

  • ¥50 comsol稳态求解器 找不到解,奇异矩阵有1个空方程返回的解不收敛。没有返回所有参数步长;pid控制
  • ¥15 怎么让wx群机器人发送音乐
  • ¥15 fesafe材料库问题
  • ¥35 beats蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功