sql 批量修改,,mysql数据库某表内特定字符后40位后面添加添加特定内容怎样实现。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 批量修改,,mysql数据库某表内特定字符后40位后面添加添加特定内容怎样实现。相关的知识,希望对你有一定的参考价值。
比如:数据库A表B字段下所有出现“zhangsan”的后面40位添加特定内容
简单啊,使用replace方法即可。假如表结构:create table t1(name varchar(500));
insert into t1 values('zhangsanhellozhangshan123');
update t1 set name=replace(name,'zhangshan','zhangshan这里加替代内容');
replace方法说明
replace(par1,par2,par3):
par1为列名
par2为需要替代的字符串
par3为替代的字符串
有用的话记得采纳哦^_^
我也是刚刚查过资料实践过的 参考技术A 只说大致的意思吧:
设置b字段的值= “zhangsan”前的内容 + zhangsan + 后40位 + 特定内容 + 后继内容
实现时需要对mysql中的字符串截取、定位两个函数比较熟悉:
substring()方法和locate()方法。
当然,别忘了where语句中要有 b like '%zhangsan%‘的条件,可能还要考虑长度的条件(大于40多)
实在做不出来,再问我好了。追问
能否给一个列子,我是新手,还做不出来。谢谢,能解决问题的话会继续追加分数的。
追答稍等,马上给你一个例子。
//建表
CREATE TABLE `a` (
`b` varchar(100)
);
//数据
+-----------------------------------------------------------------+
| b |
+------------------------------------------------------------------+
| abc123zhangsan1111122222333334444455555abc |
| abc12311111zhangsan22222333334444455555abc |
| abc12311111zhang |
+------------------------------------------------------------------+
假定我们需要在包含zhangsan的记录字段做更新,在zhangsan后10位的地方添加”AAA"
select
concat(substring(b, 1, locate('zhangsan', b) -1 + length('zhangsan') + 10),
'AAA',
substring(b, locate('zhangsan', b) + length('zhangsan') + 10))
from a where
b like '%zhangsan%'
and
length(b)>length('zhangsan')+10
执行结果:
| abc123zhangsan1111122222AAA333334444455555abc
| abc12311111zhangsan2222233333AAA4444455555abc
update A set B=B+“特定40位内容” where B like ‘%zhangsan%’追问
40位不是特定的,“zhangsan”为特定内容,向特定内容后面40位的后面加内容
追答那就是40位特定内容那里改成你要加的内容就可以了,比如你要添加12345678
那么那段sql改成update A set B=B+“12345678” where B like ‘%zhangsan%’就可以了。
mysql 如何查询某表 第一个字段内容长度
aaa表,有字段id,bbb和ccc,现在想查询bbb字段第一个内容的长度,应该怎么写
id bbb ccc
1 111 222
2 333 444
select length(bbb)from aaa limit 1
这么写对吗?
不对。因为没有排序的情况下,limit 1,并不能保证取的是第一条记录。
步骤如下:
1、创建测试表;
create table test_aaa(id int, bbb int , ccc int);
2、插入测试数据;
insert into test_aaa values(1, 111, 222);
insert into test_aaa values(3, 333, 444);
insert into test_aaa values(2, 555, 666);
3、查询表中数据;可以看下id并没有排序;
select * from test_aaa;
4、重新排序后,再取第一条记录;并去bbb字段的长度;
select id, length(bbb) lb
from (select * from test_aaa order by id) t
limit 1;
参考技术A“select length(bbb)from aaa limit 1”是不对的,因为“limit1”并不一定会按id的顺序去取,需要添上“order by id asc”进行排序。
mysql查询某表第一个字段内容长度的步骤如下:
我们需要准备的材料分别是:mysql查询器。
1、首先,打开mysql查询器,连接上该mysql连接。
2、点击“查询”按钮,输入:select length(bbb) from aaa order by id asc limit 1;
3、点击“运行”按钮,此时即可查询到bbb字段第一个内容的长度。
参考技术B 1、一般查询语句:SELECT `lcontent` FROM `caiji_ym_liuyan`查询数据:
2、有些时候需要查询某个字段的长度为多少时候才显示数据:
SQL语句:SELECT `lcontent` FROM `caiji_ym_liuyan` where
length(lcontent)<=40
PS:在mysql中一个汉字等于3个字节,所以查询的时候需要转换一下
特别要注意的就时候对于字节的转换 参考技术C 这么写是可以的,不过最好select length (bbb) as len from aaa limit 1
这样获取的时候返回的是数组,直接输出$shuzu['len']就可以了本回答被提问者和网友采纳 参考技术D show databases
show tables
以上是关于sql 批量修改,,mysql数据库某表内特定字符后40位后面添加添加特定内容怎样实现。的主要内容,如果未能解决你的问题,请参考以下文章