Mysql 如何显示数字的最后4位,并用xxxxxxxx'替换数字的其余部分;s

Mysql 如何显示数字的最后4位,并用xxxxxxxx'替换数字的其余部分;s,mysql,mysql-workbench,Mysql,Mysql Workbench,如何显示屏幕的最后四位数字 此格式的数字:XXXX-XXXX-XXXX-1234。换言之,第一次使用Xs 卡号的12位数字和最后四位数字的实际数字。 谢谢你我写了一个函数,你可以用它来做这项工作:你可以把任何数字传递给这个函数,这个函数计算出这个数字的模10000类(即,除10000的其余部分),换句话说,就是你的数字的最后四位数字。然后,函数根据需要连接XXXX-XXXX-XXXX-和零 DELIMITER $$ CREATE FUNCTION N_CREDIT_CARD (NUMBER I

如何显示屏幕的最后四位数字 此格式的数字:XXXX-XXXX-XXXX-1234。换言之,第一次使用Xs 卡号的12位数字和最后四位数字的实际数字。
谢谢你

我写了一个函数,你可以用它来做这项工作:你可以把任何数字传递给这个函数,这个函数计算出这个数字的模10000类(即,除10000的其余部分),换句话说,就是你的数字的最后四位数字。然后,函数根据需要连接XXXX-XXXX-XXXX-和零

DELIMITER $$
CREATE FUNCTION N_CREDIT_CARD 
(NUMBER INT)
RETURNS VARCHAR(19)
DETERMINISTIC
BEGIN
  DECLARE NUM INT;
  SET NUM=NUMBER%10000;
  RETURN (CASE WHEN NUM < 10 THEN CONCAT('XXXX-XXXX-XXXX-000', CAST(NUM AS CHAR(1)))
               WHEN NUM < 100 THEN CONCAT('XXXX-XXXX-XXXX-00', CAST(NUM AS CHAR(2)))
               WHEN NUM < 1000 THEN CONCAT('XXXX-XXXX-XXXX-0', CAST(NUM AS CHAR(3)))
               ELSE CONCAT('XXXX-XXXX-XXXX-',CAST(NUM AS CHAR(4))) END);
END$$
DELIMITER;
分隔符$$
创建功能N_信用卡
(整数)
返回VARCHAR(19)
确定性
开始
声明numint;
SET NUM=编号%10000;
返回(当NUM<10时,则为CONCAT('XXXX-XXXX-XXXX-000',CAST(NUM为CHAR(1)))
当NUM<100时,则CONCAT('XXXX-XXXX-XXXX-00',强制转换(NUM作为字符(2)))
当NUM<1000时,则CONCAT('XXXX-XXXX-XXXX-0',强制转换(NUM作为字符(3)))
ELSE CONCAT('XXXX-XXXX-XXXX-',CAST(NUM作为字符(4)))结束;
结束$$
定界符;

这个问题似乎是从句子的中间开始的。请写得更清楚些。另请参阅,了解如何提出一个好问题。它是否也适用于15位数的美国运通支付卡号?建议避免存储信用卡号,或将其存储为隐藏值。