select数字组合匹配整数SQL的一部分

问题描述 投票:0回答:4

假设一个简单但我正在查找客户ID,即:930566615552并且只有最后8位66615552 - 怎么会这样做?

我已经尝试了一个正确的方式,喜欢并将该列投射为vachar,但无济于事。

我确定之前已经问过这个问题,我知道我只是在寻找错误的条款来找到答案!

sql postgresql where
4个回答
2
投票

有模数运算符%

所以

5 % 10 = 5
325 % 100 = 25
457322844 % 10000 = 2844

但它有一些警告:

  1. 您需要指定在您的情况下将是动态的正确基础
  2. 它会忽略此数字列的索引

1
投票

你可以查询

... WHERE CAST(id AS text) LIKE '%66615552'

为这样的查询建立索引需要一个三元组索引。


1
投票

如果列是INT并且您始终拥有id的最后8位数,则有两个选项:

SELECT * FROM customer WHERE id % 100000000 = 66615552;
SELECT * FROM customer WHERE RIGHT(CAST(id AS TEXT), 8) = '66615552';

0
投票

尝试使用正确的功能:

SELECT * FROM customer WHERE RIGHT(id, 8) = '66615552'

或使用像运算符

SELECT * FROM customer WHERE id,8 like'%66615552'

© www.soinside.com 2019 - 2024. All rights reserved.