使用substring_index在第一个逗号和第二个逗号后搜索

时间:2013-03-03 22:50:12

标签: mysql inner-join

这是我可以用于第一个

的SQL查询
update Table1 t1
        inner join Table2 t2
        on  SUBSTRING_INDEX(t1.Location, ',', 1) = t2.Location 
    SET t1.Latitude = t2.Latitude ,
        t1.Longitude = t2.Longitude

作为一个例子,上面的查询将显示曼彻斯特,因为它在列中排在第一位:曼彻斯特,德比,伯明翰

但我也想提出一个可以搜索Derby或Birmingham的查询,以便在需要时可以超越第一个逗号。

1 个答案:

答案 0 :(得分:0)

这是一种方式:

update Table1 t1
        inner join Table2 t2
        on  find_in_set(t2.location, t1.Location) > 0
    SET t1.Latitude = t2.Latitude ,
        t1.Longitude = t2.Longitude

这也可以让您搜索特定位置,例如第二个:

update Table1 t1
        inner join Table2 t2
        on  find_in_set(t2.location, t1.Location) = 2
    SET t1.Latitude = t2.Latitude ,
        t1.Longitude = t2.Longitude