gpt4 book ai didi

java - SQL 匹配字符串

转载 作者:行者123 更新时间:2023-11-30 06:52:04 25 4
gpt4 key购买 nike

我遇到了有关字符串匹配的问题。我想要的是将表中的名称与包含相同名称+后面的端口名称的另一个名称相匹配。

eg.
TABLE:
name
1 abc
2 abc.8002
3 bcd
4 qwe
5 qwe.8002

Where the result would be another table of the form:

TABLE:
name
1 abc
2 abc.8002
3 qwe
4 qwe.8002

我已经用java代码描述了这个问题,如果你能帮我翻译一下,我将不胜感激。

List temp = new ArrayList<String>();
for (String name1 : Names) {
for (String name2 : Names) {
if (name1 != name2
&& name2.contains(name1.substring(0,2))) {
temp.add(name1);
}
}
}

最佳答案

进行自加入。使用 LIKE 来匹配名称。

select t1.name
from tablename t1
join tablename t2
on (t1.name like t2.name || '%' or t2.name like t1.name || '%')
and t1.name <> t2.name

|| 是 ANSI SQL 连接。有些产品用 concat()+ 代替。

要“选择前 3 个字母部分重复的字母”,您可以使用 SUBSTRING() 而不是 LIKE:

select t1.name
from tablename t1
join tablename t2
on substring(t1.name from 1 for 3) = substring(t2.name from 1 for 3)
and t1.name <> t2.name

这里也有 ANSI SQL 语法。一些 dbms 有 SUBSTR(t1.name, 1, 3)LEFT(t1.name, 3) 或类似的。

关于java - SQL 匹配字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42552149/

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