【问题标题】:How to update using a LIKE operator on JOIN如何在 JOIN 上使用 LIKE 运算符进行更新
【发布时间】:2016-02-15 20:08:16
【问题描述】:

我有两张桌子。邻域列表VARCHAR(100)Property_List 具有字段legal_desc,即VARCHAR(100)

Property_List中的字段legal_desc的数据如下:

Spinner Court L2N235
Federal Way Lp456
Montford appes776d

Table Subdivision 是正确的邻域值如下:

Spinner Court
Federal Way Place
Montford Estates

我需要做的是基于subdivision.neighborhood 中的查找值update Property_List.field_subdivision

我是新手,不知道如何构造 MySql 查询来执行此操作。

【问题讨论】:

  • 让我们看看您正在尝试的查询
  • 更新 mls_property_list_master_test 集 mls_property_list_master_test.subdivision = 邻域.subdivision FROM mls_property_list_master_test,邻域 WHERE mls_property_list_master_test.field_LIST_51 LIKE neighbor.subdivision
  • 快速评论。在上面发布的 sql 中,您需要将 % 添加到您的 where 条件以利用 like 语句。但是,这只会匹配 Spinner Court —— 其他 2 条记录没有部分匹配。这些应该怎么办?
  • 如果不匹配,则该字段不会更新。仅当存在匹配时。

标签: mysql join sql-like


【解决方案1】:

嗯,你可以做一些穷人的模式匹配,但它可能不会很有效。你最终将不得不编写一个算法来更好地解析这些。

update m
set m.subdivision = n.subdivision
FROM mls_property_list_master_test m
JOIN neighborhood n ON n.subdivision like '%' + m.field_LIST_51 + '%'

...或类似的东西。您可能需要输入其中一个字段的 LEFT() 才能获得匹配项。

玩这个 sqlfiddle 看看你需要做什么:http://sqlfiddle.com/#!9/f1418/10

【讨论】:

    猜你喜欢
    • 2010-10-10
    • 2016-02-15
    • 1970-01-01
    • 2021-08-24
    • 2017-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-04
    相关资源
    最近更新 更多