gpt4 book ai didi

mysql - 屏蔽mysql中的整数字段

转载 作者:行者123 更新时间:2023-11-29 02:55:53 25 4
gpt4 key购买 nike

我需要在 mysql 中屏蔽整数字段,使 9999911111 变为 9900001111。我想保留前 2 位数字和后 4 位数字,并且需要将其余数字标记为 0,以用于存储在该字段中的整数。

我已经创建了一个查询并且它正在运行,但我不确定这是否是对整数执行的正确方法。

update table_name 
set field_name=CONCAT(SUBSTR(field_name, 1, 2),
REPEAT('0', CHAR_LENGTH(field_name) - 6),
SUBSTR(field_name, CHAR_LENGTH(field_name)-3, CHAR_LENGTH(field_name)));

最佳答案

只是尝试不同的方法。

SET @myVar = 344553543534;
SELECT @myVar - (SUBSTRING(@myVar, 4, LENGTH(@myVar) - 7) * 10000) ;

上述公式将给出 344000003534 作为结果。尝试了不同的组合并发现它有效。

因此您的查询需要更改如下所示

UPDATE table_name 
SET field_name=
(field_name - (SUBSTRING(field_name, 4, LENGTH(field_name) - 7) * 10000));

解释:

Consider Number, a =  344553543534;
Expected Result, b = 344000003534;

c = (a - b) = 344553543534 - 344000003534 = 553540000;

现在如果你考虑结果,c,55354 是需要屏蔽的数字,0000 表示最后 4 个数字留空。

因此,为了获得屏蔽值,我们可以使用公式,b = a - c;

现在要获取 c,使用 SUBSTRING(a, 4, LENGTH(a) - 7) * 10000

编辑:要只保留前两个数字,请使用 3 而不是 4 和 6 而不是 7。我认为您需要保留前 3 个。

SET @myVar = 344553543534;
SELECT @myVar - (SUBSTRING(@myVar, 3, LENGTH(@myVar) - 6) * 10000) ;

关于mysql - 屏蔽mysql中的整数字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30660455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com