mysql数据库某个字段的所有值匹配替换

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql数据库某个字段的所有值匹配替换相关的知识,希望对你有一定的参考价值。

我的mysql中有这样一个字段(arctype),这个字段主要是用于存储生成静态页面的目录.这个字段中的值大概都是这个样子的[cmspath/a/info],[cmspath/a/info/city],[cmspath/a/news/china]......,请问,如何用一个SQL语句把这个字段的所有值的"/a"这一级目录去掉.

大致就是以下格式,用repleace函数将/a替换成空字符串,具体你可以先用select语句将repleace的结果查询出来确认下正确性,然后再改成update。
update
表名
set
字段名 = repleace(字段名, "/a", "")
参考技术A 请描述替换规则,或者粘贴一些示例数据(替换前、替换后)的内容。一般使用下面的sql语句:
update
表名
set
字段=replace(字段,"现有内容","替换内容")
参考技术B replace 参考技术C 替换

如何批量删除mysql某个字段的某个值?

如何批量删除mysql某个字段的某个值

比如现在有个mysql数据库叫test,里面有30个表段,这30个表段里有一半的表段含有一个叫acid的字段,我现在想批量删除这个acid字段里值为2的数据,该怎么来写这个查询?


求大神解答!

SELECT
concat(
'delete from ',
a.table_schema,
'.',
a.table_name,
' where ',
a.column_name,
'=2;'
)
FROM
information_schema. COLUMNS a
WHERE
a.column_name = 'acid'
AND EXISTS (
SELECT
1
FROM
information_schema. TABLES b
WHERE
a.table_name = b.table_name
AND b.table_type = 'BASE TABLE'
);
把执行结果放到sql工具里边执行就可以了
参考技术A 第一步:查询出所有用户表。
第二步:查询每一个表里是否有指定字段,有则更新,没有就略过。
update test.表名 acid="" where acid=2 这样写就可以了
这条语句的执行顺序是,先查询出acid等于2的记录,
然后更新他们的acid字段为空字符(或者null等其他参数)。

以上是关于mysql数据库某个字段的所有值匹配替换的主要内容,如果未能解决你的问题,请参考以下文章

mysql中我要查出某个值在查出来的N条数据中是第几条数据,这个怎么查?

mySQL怎么批量替换查询结果中的字段值?

mysql语句 模糊匹配删除或替换怎么写

SQL语句 替换某个字段中的某个值

如何批量删除mysql某个字段的某个值?

mysql数据库中如何进行模糊替换字符串