快放假了,先祝大家长假愉快!
有个查询替换的问题,具体如下:select title from table01 where 1=1结果:
1111111abc1111111
2222222abc2222222
3333333abc3333333
WWWWWWWabcWWWWWWW
QQQQQQQabcQQQQQQQ现在我想使用replace函数进行替换,想把结果中‘非abc’的字符全部替换成‘***’
我想使用regexp_replace(title,[^abc],'***')函数的,好像mysql中不支持该函数,有其他好的方法吗?附:使用replace函数 我没有搞出来,请家教高手!!不胜感激!!
select replace(title,'abc','***') from table01 where 1=1
有个查询替换的问题,具体如下:select title from table01 where 1=1结果:
1111111abc1111111
2222222abc2222222
3333333abc3333333
WWWWWWWabcWWWWWWW
QQQQQQQabcQQQQQQQ现在我想使用replace函数进行替换,想把结果中‘非abc’的字符全部替换成‘***’
我想使用regexp_replace(title,[^abc],'***')函数的,好像mysql中不支持该函数,有其他好的方法吗?附:使用replace函数 我没有搞出来,请家教高手!!不胜感激!!
select replace(title,'abc','***') from table01 where 1=1
解决方案 »
- mysql开发书籍 高性能MySQL(第2版)中文版 MySQL必知必会 下载
- 求教 mysql 中 set option 是什么查询?
- 怎么查不重复的最新记录?
- 着急着急着急!!在线等
- mysql 条件控制语句 if
- 用DTS从sql server中导数据到mysql中文全变为乱码
- Linux9上phpMyAdmin连mysql:#2003 - Can't connect to MySQL server on '192.168.0.1' (111)
- 有谁购买过mysql的License
- 紧急求助!!!(MySQL的数据一致性解决方案)
- mysql 5.1 如何保存emoji表情
- 关于Mysql的TimeOut问题
- 日期加一天
SELECT CONCAT(REPLACE(LEFT(@t,INSTR(@t,'abc')-1),LEFT(@t,1),'*'),'abc',
REPLACE(RIGHT(@t,INSTR(@t,'abc')-1),MID(@t,INSTR(@t,'abc')+4,1),'*'))将@T修改为字段名
SET @t='1111111abc1111111';
SELECT REPLACE(@t,LEFT(REPLACE(@t,'abc',''),1),'*')
SET @t1='12343435abc23456u789';
SELECT CONCAT(REPEAT('*',INSTR(@t1,'abc')-1),'abc',REPEAT('*',INSTR(REVERSE(@t1),'cba')-1))
大哥,你写的对你定义的@t是正确的,但不够健壮,随便修改修改@t的值,结果就不正确了
比如:
SET @t='我的SWQL程序,abcdedededededede,wodechengxu';
帮我再看看纳,谢谢了!!
SELECT CONCAT(REPEAT('*',INSTR(@t1,'abc')-1),'abc',REPEAT('*',INSTR(REVERSE(@t1),'cba')-1))测试数据一定要有代表性
麻烦能给讲解一下吗?
为什么abc后半句要翻转,如果abc是汉字要怎么处理?ps:
其实,我是想实现,按照某关键字,从数据库中查找出来的内容结果中,只出现“用户输入的查找关键字”而其他全部使用*号代替。(因为内容结果中可能会有敏感字符串)。
这样也就是说,上面的abc就是从查找控件传过来的变量,mysql中想实现这样的需求这么困难吗?
SELECT CONCAT(REPEAT('*',INSTR(@t1,'abc')-1),'abc',
REPEAT('*',LENGTH(@t1)-(INSTR(@t1,'abc')+2)-(INSTR(@t1,'abc')-1)));
MYSQL不支持正则替换
还有这种查找拼接组合的方式,效率怎么样呢?
1,数据库
2,查询页面
3,查询结果列表页面 因为数据记录是系统的审计数据(就是在操作电脑时,你所有操作的键盘、复制、粘贴等字符数据,可想而知,这些数据肯定是没有什么规律的,它可能是任意字符),因此会有用户名密码之类的敏感数据,但是,我们又允许对这些审计数据查询(可以对内容模糊查询),只是希望在查询的结果中,用户只能看到ta自己输入的关键字,但不能看到完整的审计数据,从而达到数据的隐蔽性。
不知道这么表述需求是否清楚。 2查询页面 往 3结果页面提交查询条件;3结果页面负责组织查询条件,调用后台类方法,获取审计数据。我想在调用类方法后,返回的结果集中就是已经替换好的(替换成***)数据集。(我们公司不允许使用存储过程,这是很BT的)。
当然,我可以在结果返回后在列表页面进行处理和替换,只是我更希望代码写的更漂亮些罢了。如果真的没有更好的解决方案的话,也只好在程序中处理字符替换了。
谢谢两位高人的不吝指点,特别是wwwwb的热心解答,再次谢谢!!