我有一个列表,其中包含超过200,000行的city列。假设它包含以下数据:
rowid city
1 Toronto
2 Milton
3 Hamilton
4 Delhi
5 New Delhi
6 Markham
我想查找另一行中包含城市的所有记录,例如米尔顿(第2行)包含在汉密尔顿(第3行)中,德里(第4行)包含在新德里(第5行)。我期待以下输出:
rowid city rowid2 city2
2 Milton 3 Hamilton
4 Delhi 5 New Delhi
单个查询可以获取我要查找的输出吗? 感谢。
答案 0 :(得分:1)
假设表名是'cities'。以下SQL查询应该有效:
select
c2.rowid, c2.city, c1.rowid, c1.city
from
cities c1
inner join
cities c2
on instr(c1.city,c2.city)
and c1.rowid != c2.rowid