要求:不考虑原来字段的值,只考虑数据长度,通过脚本update tabA set colA = stringMask(colA )实现数据脱敏,例如张三丰–ASD

提问:将指定列名作为mysql自定义函数的参数,可否获取该指定列的数据???还是说这种情况通过存储过程实现更好???

背景知识:

自定义函数(user-defined function UDF)与存储过程的区别

1,函数方法的参数列表只允许IN类型的参数,并且不允许指定IN关键字

2,函数方法返回一个单一的值,值的类型在存储方法的头部定义

3,函数方法可以在SQL语句内部调用

4,函数方法不能返回结果集

UDF可以没有参数,但UDF必须有且只有一个返回值

下面是mysql自定义函数,实现的是对传进去的某个字符串进行数据脱敏

CREATE DEFINER=

root

@

localhost

FUNCTION

myMask

(v_str VARCHAR(800)) RETURNS varchar(800) CHARSET utf8

BEGIN

DECLARE str VARCHAR(800) DEFAULT '';

DECLARE    strlen VARCHAR(800) DEFAULT '';

DECLARE chars_str varchar(100) DEFAULT 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';

DECLARE return_str varchar(800) DEFAULT '';

DECLARE i INT DEFAULT 0;

SET str = v_str;

set strlen = CHAR_LENGTH(str);

WHILE i< CONVERT(strlen,SIGNED) DO

SET return_str = concat(return_str,substring(chars_str , FLOOR(1 + RAND()*62 ),1));

SET i = i +1;

END WHILE;

RETURN return_str;

END

希望通过优化,实现上述要求。

mysql的ps.setmaxrows_mysql自定义函数实现表的指定列进行数据脱敏(PS:来自mysql小白的提问)...相关推荐

  1. mysql 查询指定字段数据_MySQL使用select语句查询指定表中指定列(字段)的数据

    本文介绍mysql数据库中执行select查询语句,查询指定列的数据,即指定字段的数据. 再来回顾一下sql语句中的select语句的语法: select 语句的基本语法: select from w ...

  2. mysql select 指定列_MySQL使用select语句查询指定表中指定列(字段)的数据

    本文介绍mysql数据库中执行select查询语句,查询指定列的数据,即指定字段的数据. 再来回顾一下sql语句中的select语句的语法: select 语句的基本语法: select from w ...

  3. MySQL —— to_char、to_date自定义函数

    MySQL -- to_char.to_date自定义函数 之前已分析 MySQL与Oracle在日期操作相关的差异 本文是用自定义函数实现to_char.to_date,此方法适用快速进行数据库兼容 ...

  4. mysql 字段写入_MySQL为数据表的指定字段插入数据

    username not null 没有默认值/有默认值   insert不插入username字段 均不报错 2014年07月23日21:05    百科369 MySQL为数据表的指定字段插入数据 ...

  5. Mysql递归查询(通过自定义函数,实现父子类关系查询)

    父子类树tree的关系,比如部门层次结构,菜单结构,可能我们更改了一级的数据,下面的所有子类以及子孙类都需要更改, 可以自定义mysql函数,进行查询出先关联数据,递归查询: 创建测试表: CREAT ...

  6. 【存储过程】MySQL存储过程/存储过程与自定义函数的区别

    ---------------------------存储过程-------------------- 语法: 创建存储过程: CREATE [definer = {user|current_user ...

  7. mysql存储过程自定义结构体_(转)MySQL存储过程/存储过程与自定义函数的区别...

    转自:http://www.cnblogs.com/caoruiy/p/4486249.html 语法: 创建存储过程: CREATE[definer = {user|current_user}] P ...

  8. Mysql的基本函数--与自定义函数

    什么是Mysql函数: 类似于java的方法将一组逻辑语句封装在方法体 对外暴露方法名 事先提供好的一些功能可以直接使用 函数可以用在select 语句及其子句上 也可以用在update ,delet ...

  9. 在mysql中创建一个自定义函数来计算两个数的和_Mysql创建自定义函数

    Mysql创建用户自定义函数: >显示库中所有的自定义函数信息: show function status; >创建自定义函数的过程如下demo1: drop function if ex ...

最新文章

  1. Youth---青春
  2. Objective-C Reflection(Objective-C 反射机制)实用随笔笔记(持续更新)
  3. 谁偷走了程序员的时间??
  4. hibernate缓存机制详细介绍
  5. Swift之深入解析“属性”的底层原理
  6. Socket 死连接详解
  7. QML笔记-JavaScript在QML中的使用(直接调用和间接调用)
  8. 游戏开发经验分享:我所理解的打击感
  9. SpringBoot之idea调出Maven Project
  10. servlet和jsp的转发与重定向代码以及区别
  11. Flink State - Backend Improvements and Evolution in 2021
  12. oracle 常用函数
  13. linux扫描仪如何使用方法,怎样在linux下设置和使用扫描仪.doc
  14. 关于CSS中背景图片透明度问题
  15. 编译原理 3.28 作业
  16. Spring Security 小记 - @Secured(), @PreAuthorize() 及 @RolesAllowed()
  17. 【知识点总结】电力电子技术——第一讲
  18. 将一个Excel中的数据导入DataGrid中
  19. python cannot import name ‘sysconfig‘ from ‘distutils‘
  20. 请领取你的免费云电脑:微软Windows实验虚拟机,每天可以免费使用两个小时,上Google搜资料很方便

热门文章

  1. 建立你第一个 Outlook Add-in
  2. Python之数据类型总结
  3. 2018年技术上该怎样努力
  4. boost signal2 trackable
  5. Linux--Tail命令
  6. LintCode初级题——fizz buzz
  7. WSSv3和SharePoint2007安装指南
  8. ES 11 - 配置Elasticsearch的映射 (mapping)
  9. JavaWeb调用python脚本(可传参)
  10. unittest测试框架详谈及实操(四)