2016-02-15 2 views
-1

У меня есть две таблицы. Таблица Подразделение список окрестностей VARCHAR(100) В таблице Property_List есть поле legal_desc, которое является VARCHAR(100).Как обновить с помощью оператора LIKE в JOIN

Поле legal_desc в таблице Property_List имеет следующие данные:

Spinner Court L2N235 
Federal Way Lp456 
Montford appes776d 

Таблица Подраздел является правильными значениями для окрестностей следующим образом:

Spinner Court 
Federal Way Place 
Montford Estates 

Что мне нужно сделать, это update Property_List.field_subdivision на основе значение поиска в subdivision.neighborhood.

Я новичок в этом и не знаю, как построить запрос MySql для этого.

+0

Давайте посмотрим ваш запрос, который вы пытаетесь –

+0

Update mls_property_list_master_test набор mls_property_list_master_test.subdivision = neighborhood.subdivision ОТ mls_property_list_master_test, окрестности ГДЕ mls_property_list_master_test.field_LIST_51 LIKE district.subdivision – Brian

+0

Быстрый комментарий. В вашем выложенном sql выше вам нужно добавить '%' к вашим критериям 'where', чтобы воспользоваться выражением' like'. Однако это будет соответствовать только «Spinner Court» - остальные 2 записи не имеют частичного соответствия. Что с ними должно произойти? – sgeddes

ответ

0

Ну, вы можете сделать подходящий шаблон для некоторых людей, но это, вероятно, не будет очень эффективным. В конце концов вам придется написать алгоритм для более синтаксического анализа.

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

Смежные вопросы