搜索其他记录

时间:2017-09-13 19:25:25

标签: mysql sql

我有一个列表,其中包含超过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

单个查询可以获取我要查找的输出吗? 感谢。

1 个答案:

答案 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