问题描述
- 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语句?
解决方案
建一个函数吧
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
时间: 2024-11-03 19:06:17