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

问题描述

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

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

MYSQL 中怎样把同一张表中相同字段的内容合并为一条记录?

问题描述 MYSQL 中怎样把同一张表中相同字段的内容合并为一条记录? 我的表现在是这样的: 客户id 购买产品id 1 123 1 124 1 125 1 126 2 168 2 169 想让表转变成: 客户id 购买产品id 1 123,124,125,126 2 168,169 也就是说把一个客户购买的产品合并显示在一条记录中. 解决方案 使用group_concat 解决方案二: 用行转列实现,今天上午看到一个和你的问题完全符合 http://blog.csdn.net/ning1093

select-ibatis查出mysql数据库表中某字段为null的数据???怎么写动态sql

问题描述 ibatis查出mysql数据库表中某字段为null的数据???怎么写动态sql 例如 select * from test where name is null 这条sql 中 IS NULL 报错,不知道ibatis里该怎么写??? 解决方案 我竟然不知道你想表达什么 解决方案二: 这条sql报错,不知道怎么改进??? 解决方案三: select * from table where content is "" 解决方案四: 在数据库中null 也是个值 解决方案五: 我

mysql update 根据表中字段查询另一张表更新更新

问题描述 mysql update 根据表中字段查询另一张表更新更新 mysql有两张表, 班级表class,包含 | id | name | | 1 | 一班 | | 2 | 二班 | 学生表student,其中classId为空,className有值并对应class表中的name | id | name | classId | className | | 1 | 一班 | | 一班 | | 2 | 二班 | | 二班 | | 3 | 一班 | | 一班 | | 4 | 二班 | | 二班

mysql里面没设置默认值字段也不允许为空,插入语句中也没指定值却能插入成功!是什么情况??

问题描述 mysql里面没设置默认值字段也不允许为空,插入语句中也没指定值却能插入成功!是什么情况?? 如题,我的表结构是这样的 SQL语句:INSERT INTO test (name) VALUES ('lsq2') 求大神帮忙!! 解决方案 后面的图片上错了, 解决方案二: 楼主你替数据库想想,又不能为null,又得是int类型,还能怎么办,数据库只能补个0. 解决方案三: 我以为是会报错,这是我本地测试的 没有报错我在正式服务器上试了报错了,说字段没有默认值.

jsp mysql-jsp页面如何实现一个用mysql创建的表中的信息

问题描述 jsp页面如何实现一个用mysql创建的表中的信息 这是我的jsp界面 <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> My JSP 用户名: 密 码 </body> </html> 而且我的数据库也连接上了,连接代码放在src/com.ming.java/DB类中,我在数据库中还建了一张表格userinfo

看实例学VFP:利用多个表中的字段创建新表

本例中再来复习一下select语句中的inner join子句的知识,关于select语句请参考:select SQL 命令 或sql语言教程.本例的主要操作是在表单的init事件中完成的,在该事件中进行连接查询并将查询结果输出为一个临时表(该表包括了"人员信息表"的"姓名,性别,基本工资"3个字段以及"工资表"的"奖金,生活补助,养老保险"3个字段),最后将该表设为表格控件的数据源.本例应用到了数据环境,并使用"数

mvc3 如果实现只修改表中部分字段值?

问题描述 用EF映射了一张用户表User,字段如下:userid用户名pwd密码name姓名tel电话address地址createtime创建时间接到要求要实现一个用户资料修改的功能,需对数据表中已有的数据(电话,地址)进行修改.于是,我在修改页面上制作了两个文本框tel电话,address地址,提供给用户输入,其他项是只读的标签.在提交修改的代码中,实例化了一个对象user,并且接收修改界面传递过来的值由于页面传递过来只有文本框和用户名输入了值,即userid='001',user.tel=

c++获取sqlite3数据库表中所有字段的方法小结_C 语言

常用方法: 1.使用sqlite3_get_table函数 2.获取sqlite创建表的sql语句字符串,然后进行解析获取到相应的字段 3.采用配置文件的方式,将所有字段名写入配置文件 下面针对这三个方法给大家逐一详细介绍. 方法1:使用sqlite3_get_table函数 代码: char *dbname = "test.db"; int rc = sqlite3_open(dbname, &db); if (rc == SQLITE_OK) { char sql[256]

查询两个表中字段个数不同,名称不同的SQL语句

语句 此sql语句能对两个不同表不同结构不同字段进行查询,并且能分出哪个记录是属于哪个表中的 有两个表table1结构如下id title content table2结构如下id content bigclass smallclass sql="select id, title, content,'' as bigclass,'' as smallclass, 'tbl1' as tbl from table1 where title like '%"&keyword&