gpt4 book ai didi

sql - 带有反向 LIKE 条件的查询

转载 作者:行者123 更新时间:2023-12-03 17:52:16 24 4
gpt4 key购买 nike

有一个列名为“电话”的表格,并且有不同格式的不同号码。

例子:

id | number
1 | 03439879098
2 | 01109890032
3 | +91 932 3233237

现在,如果我想搜索“3233237”,那么查询将是:
select * from table where number like '%3233237%';

结果将是:
id | number
3 | +91 932 3233237

但就我而言,我想要相反
String search = "+92 343 9879098"

select * from table where number like search

结果应该是:
id | number
1 | 03439879098

因为列号和搜索字符串有一个共同的字符串,即 9879098 .

查询的设计方式应使其查找搜索字符串和列值都具有公共(public)子字符串 的记录。

请给我一些想法。

最佳答案

这是一个棘手的问题。您可以在纯 SQL 执行中执行此操作:

select * from table where '+92 343 9879098' like '%' || number || '%';

在这里,我们将数字列与通配符 % 连接起来。

*您也可以通过编程方式解决它:
    String search = "+92 343 9879098";
String query = "select * from table where ";
String[] parts = search.split( "\\s+" );
for ( String oneNumber : parts ) {
query += " number like '%" +oneNumber+ "%' OR";
}
query += " false"; // this, or trim the last OR calculating the string length

干杯。

关于sql - 带有反向 LIKE 条件的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45962367/

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