gpt4 book ai didi

mysql - 比较两个整数在每个小数位的数字

转载 作者:行者123 更新时间:2023-11-29 02:46:08 26 4
gpt4 key购买 nike

我不确定我是否使用了正确的术语来描述问题,我的数学英语不太好。

我需要做的是根据数字的位置检查它们是否匹配两个整数的每个数字:个位、十位、..等

例如查看下表不同的数字和想要的比较结果:

number1 | number2 | desired result
-----------------------------------
100 | 101 | 001
443 | 143 | 300
7001 | 8000 | 1001
6001 | 8000 | 2001
19 | 09 | 10

基本上我只需要每个数字的减法绝对值。所以对于第一个例子:

1 0 0
1 0 1 -
--------
0 0 1

第二个:

4 4 3
1 4 3 -
-------
3 0 0

第三个:

7 0 0 1
8 0 0 0 -
---------
1 0 0 1

这需要在mysql中完成。有什么想法吗?

最佳答案

如果您的数字低于 10000,这应该可以完成工作。如果超出,只需修改查询;)

    SELECT number1,
number2,
REVERSE(CONCAT(ABS(SUBSTRING(REVERSE(number1), 1, 1) - SUBSTRING(REVERSE(number2), 1, 1)),
IF(CHAR_LENGTH(number1) > 1, ABS(SUBSTRING(REVERSE(number1), 2, 1) - SUBSTRING(REVERSE(number2), 2, 1)), ''),
IF(CHAR_LENGTH(number1) > 2, ABS(SUBSTRING(REVERSE(number1), 3, 1) - SUBSTRING(REVERSE(number2), 3, 1)), ''),
IF(CHAR_LENGTH(number1) > 3, ABS(SUBSTRING(REVERSE(number1), 4, 1) - SUBSTRING(REVERSE(number2), 4, 1)), ''))) as `desired result`
FROM numbers

对于 3 位数字:

SELECT number1,
number2,
CONCAT(
ABS(SUBSTRING(number1, 1, 1) - SUBSTRING(number2, 1,1)),
ABS(SUBSTRING(number1, 2, 1) - SUBSTRING(number2, 2,1)),
ABS(SUBSTRING(number1, 3, 1) - SUBSTRING(number2, 3,1))
)
FROM numbers

实际上你根本没有反转字符串。这来 self 之前尝试过的一种更数学化的方法;)

关于mysql - 比较两个整数在每个小数位的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41997820/

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