选择数字组合与整数SQL的一部分匹配的位置

选择数字组合与整数SQL的一部分匹配的位置,sql,postgresql,where,Sql,Postgresql,Where,假设是一个简单的,但我正在查找一个客户ID,即:930566615552,只有最后8位66615552-如何做到这一点 我尝试了一个WHERE-RIGHT,LIKE和Cast-the-column-as-vachar,但是没有用 我确信这个问题以前被问过,我知道我只是在寻找错误的术语来找到答案 您可以查询 ... WHERE CAST(id AS text) LIKE '%66615552' 为这样的查询编制索引需要一个三元索引。您可以查询 ... WHERE CAST(id AS text)

假设是一个简单的,但我正在查找一个客户ID,即:930566615552,只有最后8位66615552-如何做到这一点

我尝试了一个WHERE-RIGHT,LIKE和Cast-the-column-as-vachar,但是没有用

我确信这个问题以前被问过,我知道我只是在寻找错误的术语来找到答案

您可以查询

... WHERE CAST(id AS text) LIKE '%66615552'
为这样的查询编制索引需要一个三元索引。

您可以查询

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

为此类查询编制索引将需要一个三元索引。

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

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

如果列为INT且始终具有id的最后8位,则有两个选项:

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

存在模数运算符%

所以

但它有一些警告:

  • 您需要指定在您的案例中将是动态的正确基数
  • 它忽略此数值列的索引

  • 存在模数运算符%

    所以

    但它有一些警告:

  • 您需要指定在您的案例中将是动态的正确基数
  • 它忽略此数值列的索引

  • 尝试使用正确的功能:

    SELECT * FROM customer WHERE RIGHT(id, 8) = '66615552'
    
    或使用类似运算符


    选择*FROM customer WHERE id,8如“%66615552”

    尝试使用正确的功能:

    SELECT * FROM customer WHERE RIGHT(id, 8) = '66615552'
    
    或使用类似运算符


    选择*FROM customer WHERE id,8,如“%66615552”

    您总是有最后8位数字吗?id列是什么类型的?你总是有最后8位吗?id列是什么类型的?